summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/egplot
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/egplot
Initial commit
Diffstat (limited to 'macros/latex/contrib/egplot')
-rw-r--r--macros/latex/contrib/egplot/egplot.README30
-rw-r--r--macros/latex/contrib/egplot/egplot.dtx1054
-rw-r--r--macros/latex/contrib/egplot/egplot.ins74
-rw-r--r--macros/latex/contrib/egplot/egplot.pdfbin0 -> 333638 bytes
-rw-r--r--macros/latex/contrib/egplot/manual.ps.gzbin0 -> 150572 bytes
5 files changed, 1158 insertions, 0 deletions
diff --git a/macros/latex/contrib/egplot/egplot.README b/macros/latex/contrib/egplot/egplot.README
new file mode 100644
index 0000000000..f2ae89b43d
--- /dev/null
+++ b/macros/latex/contrib/egplot/egplot.README
@@ -0,0 +1,30 @@
+% egplot:
+%
+% Encapsulated gnuplot for LaTeX
+%
+% The egplot package allows to encapsulate gnuplot commands in LaTeX
+% sources. Additionally the package provides commands that
+% enable the user to let gnuplot do calculations and insert the result values
+% into the generated output.
+%
+% CAUTION:
+% Calculation commands are only usable if the UN*X text utils
+% - tail
+% - head
+% - cut
+% and the stream editor
+% - sed
+% are installed and the commands
+% - 'rm' for the removal of files and
+% - 'cp' for the copying of files
+% are provided by the operating system.
+%
+%
+% Changes:
+% v1.00 1998/06/17 First release
+% v1.01 1998/06/25 Fixed bug with german option and negative tic mark
+% values
+% v1.02 1998/07/08 egplot now supports gnuplot-3.5 and gnuplot-3.6beta
+%
+% automatic filename generation (numbering) for multiple
+% egpfile-environments in one document
diff --git a/macros/latex/contrib/egplot/egplot.dtx b/macros/latex/contrib/egplot/egplot.dtx
new file mode 100644
index 0000000000..5e87596967
--- /dev/null
+++ b/macros/latex/contrib/egplot/egplot.dtx
@@ -0,0 +1,1054 @@
+% \iffalse % egplot.dtx - Encapsulated gnuplot for LaTeX(2e)
+% Copyright (C) 1998 by Axel.Probst@bam.de
+%
+% Egplot is free software; you can redistribute it and/or modify it
+% under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% Egp is distributed in the hope that it will be useful, but
+% WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% \fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%% \CheckSum{449}
+%% \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{v1.00}{1998/06/17}{First released version}
+% \changes{v1.01}{1998/06/25}{Fixed bug with \texttt{german} option and
+% negative tic mark values}
+% \changes{v1.02}{1998/07/08}{Added options \texttt{gnuplot35} and
+% \texttt{gnuplot36beta} to allow output of
+% syntax of \GP{}-3.5.\\
+% Added numbering of \GP{} files to allow multiple
+% \texttt{egpfile} environments w/o explicitly
+% defined names in one document.}
+%
+% \MakeShortVerb{\|}
+%
+%
+% \title{%
+% \EGP: \\
+% Encapsulated \GP{} for \LaTeX\thanks{%
+% This is \texttt{\filename}, version \fileversion, date \filedate.}}
+%
+% \author{%
+% Axel Probst\thanks{e-mail:
+% \texttt{Axel.Probst@bam.de}}\\
+% \hfil \\
+% c/o\\
+% Federal Institute for Materials Research and Testing\\
+% Unter den Eichen 87\\
+% D-12205 Berlin \\
+% Germany}
+%
+% \maketitle
+% \begin{abstract}
+% The \EGP{} package allows to encapsulate \GP{} commands in \LaTeX{}
+% sources. This is very useful for keeping illustrations in sync
+% with the text. It also frees the user from inventing descriptive
+% names for PostScript files. Additionally the package provides commands that
+% enable the user to let \GP{} do calculations and insert the result values
+% into the generated output.
+% \end{abstract}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{multicols}{2}
+% \tableofcontents
+% \end{multicols}
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \vfill
+% \section*{Copying}
+%
+% \EGP{} is free software; you can redistribute it and/or modify it
+% under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% \EGP{} is distributed in the hope that it will be useful, but
+% \emph{without any warranty}; without even the implied warranty of
+% \emph{merchantability} or \emph{fitness for a particular purpose}.
+% See the GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \def\topfraction{0.9}
+% \def\bottomfraction{0.9}
+% \def\textfraction{0.1}
+% \egpfigprelude{set terminal postscript eps monochrome dashed "Helvetica" 17^^J
+% set title ""; set grid^^J}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section{Introduction}
+% \label{sec:intro}
+%
+% When adding illustrations to documents, one faces two bookkeeping
+% problems:
+% \begin{enumerate}
+% \item How to encourage oneself to keep the illustrations in sync
+% with the text, when the document is updated?
+% \item How to make sure that the illustrations appear on the right
+% spot?
+% \end{enumerate}
+% For both problems, the best solution is to encapsulate the figures
+% in the \LaTeX{} source:
+% \begin{enumerate}
+% \item It is much easier to remember to update an illustration if
+% one doesn't have to switch files in the editor.
+% \item One does not have to invent illustrative filenames, if
+% the computer keeps track of them.
+% \end{enumerate}
+% This concept of integrating the image generating commands into the \LaTeX{}
+% source was implemented for \MF{} by Thorsten
+% Ohl\footnote{e-mail:\texttt{Thorsten.Ohl@Physik.TU-Darmstadt.de}} in the
+% \EMP-package.
+% The \EGP{} package now allows the encapsulation of \GP~\cite{GP} into
+% \LaTeX~\cite{LaTeX-Graphics-Companion,LaTeX,LaTeX-Companion}. Although \GP{}
+% provides several output formats that are suitable for the inclusion into
+% \LaTeX{} the \EGP{} package is only intended for use with the Postscript
+% terminal of \GP{} so far.
+%
+% In addition to the image inclusion commands \EGP{} provides the user with
+% commands to let \GP{} do calculations and include the results into the
+% document. Unfortunately these features are implemented with the UN*X text utils
+% and so they are only usable if these are installed on the system. If the user
+% does not provide a name for the \GP{} file the
+% names for the PostScript and the result values files are built by appending
+% the number of the \GP{} file, the figure/calculation number and a three
+% letter extension (|.eps| or |.val|) to |\jobname|. So the user has to
+% choose a |\jobname| that is short enough so that the generated
+% filenames fit into the conventions of certain operating systems.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section{Usage}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Options}
+% \label{sec:options}
+%
+% \DescribeMacro{Options}
+% Besides the options of the |graphicx| package \EGP{} recognizes the following
+% options:
+% \begin{description}
+% \item[|german|:] If |german| is specified the calculated values and the tic labels of the
+% diagrams are changed to show a `,' as decimal point
+% character. The default is a `.'. This feature is also
+% implemented with UN*X text utils and is only available if
+% they are installed on the system.
+% \item[|gnuplot35|:] If |gnuplot35|~(default) is specified the \GP{} commands
+% generated by |egplot| will be compatible with the syntax
+% of the official \GP{} version~3.5. Of course the user
+% has to look for the right syntax in his \GP{} code
+% himself. Special care has to be taken for the
+% |\egpprelude{|\dots|}| and the |\egpfigepilog{|\dots|}|
+% commands since these are used to implement the missing
+% |reset| command of \GP{}-3.5.
+% \item[|gnuplot36beta|:] If |gnuplot36beta| is specified the \GP{} commands
+% generated by |egplot| will use the features of the
+% beta version \GP{}~3.6beta. As mentioned above the user
+% has to look for the right syntax in his \GP{} code
+% himself.
+% \end{description}
+%
+% \subsection{Commands and Environments}
+% \label{sec:commands}
+%
+% \subsubsection{Miscellaneous}
+% \label{sec:misc}
+%
+% \DescribeEnv{egpfile}
+% All descriptions that should go into one \GP{} file are placed
+% inside a |egpfile| environment which takes the name of the \GP{}
+% file as an optional argument:
+% \begin{quote}
+% \begin{flushleft}
+% |\begin{egpfile}[|\meta{\GP-file}|]|\\
+% \qquad\ldots\\
+% |\end{egpfile}|
+% \end{flushleft}
+% \end{quote}
+% The default \GP-filename is |\jobname.gp|.
+%
+% \DescribeEnv{egpcmds}
+% \DescribeMacro{\egpwrite}
+% Write \GP{} commands to the current file outside of a figure.
+% The |\egpwrite| command is intended for short one line commands.
+% \begin{quote}
+% \begin{flushleft}
+% |\begin{egpcmds}|\\
+% \qquad\meta{\GP-commands}\\
+% |\end{egpcmds}|
+% \end{flushleft}
+% \end{quote}
+%
+% \DescribeMacro{\egpprelude}
+% \DescribeMacro{\egpaddtoprelude}
+% Define and add to the set of commands that are prepended to the top of
+% every \GP{} file. It is intended for the global definition of variables
+% or functions.
+%
+% The default is empty.
+%
+% \subsubsection{Figures}
+% \label{sec:images}
+%
+% \DescribeEnv{egp}
+% \DescribeEnv{egpx}
+% \DescribeEnv{egpdef}
+% The |egp| as the |egpx| environment contains the description of a single
+% figure that will be placed at the location of the environment.
+% The |egpdef| environment only defines a figure but does not include it into
+% the document. This is useful, because these environments use the
+% |verbatim| package and can therefore \emph{not} be used as an
+% argument to other macros. The \meta{name} that is assigned to the figure is
+% used for later inclusion with the |\egpuse{|\meta{name}|}| command.
+% For the |egp| and |egpx| environment the assignment of the \meta{name} is
+% optional.
+% The required argument of the |egpx| environment accepts any set of keys
+% accepted by the |\includegraphics| command of the |graphicx| package.
+% \begin{quote}
+% \begin{flushleft}
+% |\begin{egp}[|\meta{name}|]|\\
+% \qquad\meta{\GP-commands}\\
+% |\end{egp}|
+% \end{flushleft}
+% \end{quote}
+% \begin{quote}
+% \begin{flushleft}
+% |\begin{egpx}[|\meta{name}|]{|\meta{key val list}|}|\\
+% \qquad\meta{\GP-commands}\\
+% |\end{egpx}|
+% \end{flushleft}
+% \end{quote}
+% \begin{quote}
+% \begin{flushleft}
+% |\begin{egpdef}{|\meta{name}|}|\\
+% \qquad\meta{\GP-commands}\\
+% |\end{egpdef}|
+% \end{flushleft}
+% \end{quote}
+%
+% \DescribeMacro{\egpuse}
+% Reuse a previously defined figure.
+% The optional argument of the |\egpuse| command accepts any set of the keys
+% that is accepted by the |\includegraphics| command of the |graphicx| package.
+% \begin{quote}
+% \begin{flushleft}
+% |\egpuse[|\meta{key val list}|]{|\meta{name}|}|\\
+% \end{flushleft}
+% \end{quote}
+%
+% \DescribeMacro{\egpfigprelude}
+% \DescribeMacro{\egpaddtofigprelude}
+% Define and add to a \GP{} prelude that is prepended to the output of
+% every |egp|, |egpx| or |egpdef| environment.
+% The default is:
+% \begin{quote}
+% \qquad{}|set terminal postscript eps monochrome dashed "Helvetica" 17|
+% \end{quote}
+% In fact this is the command where the terminal for the \GP{}-|plot| command
+% is set. So the user has to take care that (Encapsulated) PostScript output is
+% generated.
+%
+% \DescribeMacro{\egpfigepilog}
+% \DescribeMacro{\egpaddtofigepilog}
+% Define and add to a \GP{} epilog that is appended to the output of
+% every |egp|, |egpx| or |egpdef| environment.
+% This command can be used for e.g. |replot|ting the figure to the screen or
+% |reset|ing to the defaults after every figure.
+%
+% The defaults are as follows:
+% \begin{quote}
+% \begin{tabular}{lll}
+% Option: & none, |gnuplot35| & |gnuplot36beta| \\
+% & |load "reset.gp"| & |reset| \\
+% \end{tabular}
+% \end{quote}
+%
+% \subsubsection{Calculating}
+% \label{sec:calculations}
+%
+% In addition to the commands and environments to generate and include \GP{}
+% figures the \EGP{}-package provides commands to use \GP{} for the
+% calculation of arbitrary arithmetic expressions. Since the \GP{}-|plot|
+% command is used for this feature every expression that is accepted by this
+% command is possible. But this may also lead to unexpected results if the
+% expression contains the variable~$x$ which is used as the independent
+% variable of the \GP{}-|plot| command. As stated
+% above~(cf.~p.~\pageref{sec:intro}) the UN*X text utils are used for the
+% implementation and so the calculation commands can only be used on systems
+% where these are installed.
+%
+% \DescribeMacro{\egpcalc}
+% Let \GP{} calculate the value of a \meta{\GP-expression}. The result is written to a
+% file.
+% The optional argument assigns a name to be used with |\egpuseval{|\meta{name}|}|.
+% \begin{quote}
+% \begin{flushleft}
+% |\egpcalc[|\meta{name}|]{|\meta{\GP-expression}|}|\\
+% \end{flushleft}
+% \end{quote}
+%
+% \DescribeMacro{\egpuseval}
+% Insert a previously defined calculation result.
+%
+% \DescribeMacro{\egpshowval}
+% Does the same as the |\egpcalc|-command but additionally the result is placed
+% in the output at the position of the |\egpshowval|-command.
+%
+% \DescribeMacro{\egpassign}
+% The first argument is the name of a \meta{\GP-variable} or \meta{\GP-user
+% function} which is assigned the second argument which is a
+% \meta{\GP-expression}. The result is placed in the output as for the
+% |\egpshowval| command.
+%
+% \subsection{Procedure}
+% \label{sec:procedure}
+%
+% After \LaTeX{} has done it's job for the first time you have to invoke \GP{}
+% on the generated file~(default: |\jobnameX.gp|, where |X| is a number). Then
+% another \LaTeX{} run is necessary to include the figures and the results into
+% the output.
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Examples}
+% \label{sec:examples}
+%
+% For a simple example, let's draw the function
+% $f(x)=\sin({\sqrt{x^2+y^2}})/\sqrt{x^2+y^2}$.
+% \begin{macrocode}
+%<*sample>
+\begin{egpfile}
+\begin{center}
+\begin{egpx}[sombrero]{width=0.8\linewidth}
+ set hidden3d
+ set nogrid
+ set samples 1000
+ set isosamples 35
+ splot [-10:10] [-10:10] sin(sqrt(x*x+y*y))/sqrt(x*x+y*y)
+\end{egpx}
+\end{center}
+% \end{macrocode}
+\begin{egpfile}
+\begin{center}
+\begin{egpx}[sombrero]{width=0.8\linewidth}
+ set hidden3d
+ set nogrid
+ set samples 1000
+ set isosamples 35
+ splot [-10:10] [-10:10] sin(sqrt(x*x+y*y))/sqrt(x*x+y*y)
+\end{egpx}
+\end{center}
+%
+% Additionally we define a figure that will not be shown here but at the place
+% of the appropriate |\egpuse| command.
+%
+% \begin{macrocode}
+\begin{egpdef}{kleinbottle}
+ set hidden3d
+ set parametric
+ set nokey
+ set nogrid
+ set noborder
+ set noxtics
+ set noytics
+ set noztics
+ set xrange [-10:10]
+ set yrange [-10:10]
+ set zrange [-3:3]
+ set urange [0:2*pi]
+ set vrange [0:2*pi]
+ set isosamples 39,60
+ set view 60,120
+ set title "Klein bottle"
+ splot (2*sin(u)*cos(v/2)-sin(2*u)*sin(v/2)+8)*cos(v), \
+ (2*sin(u)*cos(v/2)-sin(2*u)*sin(v/2)+8)*sin(v), \
+ 2*sin(u)*sin(v/2)+sin(2*u)*cos(v/2)
+\end{egpdef}
+% \end{macrocode}
+\begin{egpdef}{kleinbottle}
+ set hidden3d
+ set parametric
+ set nokey
+ set nogrid
+ set noborder
+ set noxtics
+ set noytics
+ set noztics
+ set xrange [-10:10]
+ set yrange [-10:10]
+ set zrange [-3:3]
+ set urange [0:2*pi]
+ set vrange [0:2*pi]
+ set isosamples 39,60
+ set view 60,120
+ set title "Klein bottle"
+ splot (2*sin(u)*cos(v/2)-sin(2*u)*sin(v/2)+8)*cos(v), \
+ (2*sin(u)*cos(v/2)-sin(2*u)*sin(v/2)+8)*sin(v), \
+ 2*sin(u)*sin(v/2)+sin(2*u)*cos(v/2)
+\end{egpdef}
+%
+% Since we have given a name to each diagram, we can now use them with
+% \begin{macrocode}
+\begin{figure}
+ \begin{center}
+ \fbox{\egpuse[scale=0.4]{sombrero}}
+ \fbox{\egpuse[scale=0.4]{kleinbottle}}
+ \caption{Two examples taken from the \GP{} demo}\label{fig:demo}
+ \end{center}
+\end{figure}
+% \end{macrocode}
+%
+% and the result is shown in figure~\ref{fig:demo}.
+%
+\begin{figure}
+ \begin{center}
+ \fbox{\egpuse[scale=0.4]{sombrero}}
+ \fbox{\egpuse[scale=0.4]{kleinbottle}}
+ \caption{Two examples taken from the \GP{} demo}\label{fig:demo}
+ \end{center}
+\end{figure}
+%
+% To calculate the value of $f(\pi/4)$ we issue the command
+%
+% $f(\pi/4)=\egpshowval[sin_quarter_pi]{sin(pi/4)}$
+% \begin{macrocode}
+$f(\pi/4)=\egpshowval[sin_quarter_pi]{sin(pi/4)}$
+% \end{macrocode}
+% and get $\frac{\sqrt{2}}{2}=\fbox{\egpuseval{sin_quarter_pi}}\footnote{I
+% couldn't figure out how to remove the trailing space, yet. Any hints ?}$
+% \begin{macrocode}
+and get $\frac{\sqrt{2}}{2}=\fbox{\egpuseval{sin_quarter_pi}}$.
+\end{egpfile}
+% \end{macrocode}
+%
+\end{egpfile}
+% \begin{macrocode}
+%</sample>
+% \end{macrocode}
+%
+% \section{Acknowledgements}
+% I would like to thank Thorsten Ohl for submitting the \EMP{} package to CTAN.
+% By using it as a template I managed it to adapt the idea of integrating the
+% image generating commands into \LaTeX{} for \GP{}. A lot of code of the
+% \EMP{} package was reused with only marginal changes. This is also caused by
+% the fact that I am far away from understanding all of the code of \EMP{}.
+%
+% \section{Todo}
+% In additon to optimising \EGP{} it would be nice if the features that are
+% provided through the use of UN*X text utils were implemented in
+% \TeX{}/\LaTeX{}. Another interesting feature to implement in following
+% versions of \EGP{} is the possibility to use other output formats
+% provided by \GP{}, especially the |pslatex| and |pstricks| terminals but also
+% the |png| terminal for inclusion into PDF could be useful.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{thebibliography}{99}
+% \bibitem{LaTeX-Graphics-Companion} Michel Goossens, Sebastian
+% Rahtz, and Frank Mittelbach, \textit{The \LaTeX{} Graphics
+% Companion}, Addison-Wesley, Reading MA, 1997.
+% \bibitem{LaTeX} Leslie Lamport, \textit{\LaTeX{} --- A
+% Documentation Preparation System},
+% Addison-Wesley, Reading MA, 1985.
+% \bibitem{LaTeX-Companion} Michel Goossens, Frank Mittelbach, and
+% Alexander Samarin, \textit{The \LaTeX{} Companion},
+% Addison-Wesley, Reading MA, 1994.
+% \bibitem{EMP} Thorsten Ohl, \texttt{emp}, available from
+% CTAN (cf.~p.~\pageref{pg:CTAN}), in the \texttt{macros/latex/contrib/supported/emp}
+% directory.
+% \bibitem{GP} Thomas Williams and Colin Kelley, \textit{gnuplot}, available
+% from \texttt{ftp.dartmouth.edu} in the \texttt{/pub/gnuplot} directory.
+% \end{thebibliography}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section*{Distribution}
+% \label{sec:distribution}
+%
+% \EGP{} is available by anonymous internet ftp from any of the
+% Comprehensive \TeX{} Archive Network (CTAN) hosts
+% \label{pg:CTAN}
+% \begin{quote}
+% |ftp.tex.ac.uk|, |ftp.dante.de|
+% \end{quote}
+% in the directory
+% \begin{quote}
+% |macros/latex/contrib/supported/egplot|
+% \end{quote}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*style>
+\def\fileversion{v1.02a}
+\NeedsTeXFormat{LaTeX2e}
+\gdef\filename{egplot.sty}%
+\gdef\filedate{1998/07/08}%
+\gdef\filemaintainer{Axel Probst}%
+% \end{macrocode}
+%
+% And now the standard procedure:
+% \begin{macrocode}
+\ProvidesPackage{egplot}[\filedate\space\fileversion\space
+ Encapsulated gnuplot LaTeX Package (\filemaintainer)]
+% \end{macrocode}
+%
+% Load the required packages:
+% \begin{macrocode}
+\RequirePackage{verbatim}
+\RequirePackage{ifthen}
+% \end{macrocode}
+%
+% Now the options are specified:
+% \begin{macrocode}
+\newboolean{egp@german}
+\setboolean{egp@german}{false}
+\DeclareOption{german}{%
+ \setboolean{egp@german}{true}}
+\newboolean{egp@oldgp}
+\setboolean{egp@oldgp}{true}
+\DeclareOption{gnuplot35}{%
+ \setboolean{egp@oldgp}{true}}
+\DeclareOption{gnuplot36beta}{%
+ \setboolean{egp@oldgp}{false}}
+% \end{macrocode}
+%
+% Every option we don't understand is sent down to |graphicx|:
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphicx}}
+\ProcessOptions
+\RequirePackage{graphicx}[1994/12/15]
+% \end{macrocode}
+%
+% \begin{macro}{\egpwrite}
+% Write out the argument to the \GP{} file.
+% \begin{macrocode}
+{\catcode`\#=11\gdef\egpcomment{#}}
+\def\egpwrite#1{%
+ \if@egpio
+ \immediate\write\@outegp{#1}%
+ \fi
+ \ignorespaces}
+\newif\if@egpio
+\@egpiotrue
+\newwrite\@outegp
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egpfile}
+% This environment encloses each \GP{} input file. The single optional
+% argument gives the name of the file.
+% \begin{macrocode}
+\newcounter{egpfilenum} % 1998-03-07
+\setcounter{egpfilenum}{0} % 1998-03-07
+\newcommand{\egpfile}[1][\jobname\theegpfilenum_]{%
+ \def\theegpfile{#1}%
+ \ifthenelse{\equal{\theegpfile}{\jobname\theegpfilenum_}}{%
+ \stepcounter{egpfilenum}%
+ \def\theegpfilename{\jobname\theegpfilenum.gp}}{%
+ \def\theegpfilename{\theegpfile.gp}}
+% \end{macrocode}
+% Open the \GP{} file.
+% \begin{macrocode}
+ \if@egpio
+ \immediate\openout\@outegp=\theegpfilename\relax
+ \egpwrite{\egpcomment\space \theegpfilename -- %
+ do not edit, generated automatically by \jobname.tex^^J}
+% \end{macrocode}
+% append the defined prelude and write it out:
+% \begin{macrocode}
+ \expandafter\ifx\expandafter*\the\egp@prelude*\else
+ \egpwrite{\the\egp@prelude;}%
+ \fi
+ \fi
+% \end{macrocode}
+% Count the figures and the calculations
+% \begin{macrocode}
+ \setcounter{egpfig}{0}
+ \setcounter{egpcalc}{0}}
+\let\theegpfile\relax
+\newcounter{egpfig}
+\newcounter{egpcalc}
+% \end{macrocode}
+% Standard preludes for the whole file and for every figure and the per figure
+% epilog:
+% \begin{macrocode}
+\newtoks\egp@prelude
+\newtoks\egp@figprelude
+\newtoks\egp@figepilog
+%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egpprelude}
+% \begin{macro}{\egpfigprelude}
+% \begin{macro}{\egpfigepilog}
+% \begin{macro}{\egpaddtoprelude}
+% \begin{macro}{\egpaddtofigprelude}
+% \begin{macro}{\egpaddtofigepilog}
+% Define and add to the file or figure prelude and the figure epilog.
+% \begin{macrocode}
+\def\egpprelude#1{\egp@prelude={#1}}
+\def\egpfigprelude#1{\egp@figprelude={#1}}
+\def\egpfigepilog#1{\egp@figepilog={#1}}
+\def\egpaddtoprelude#1{\egp@prelude=\expandafter{\the\egp@prelude^^J#1}}
+\def\egpaddtofigprelude#1{\egp@figprelude=\expandafter{\the\egp@figprelude^^J#1}}
+\def\egpaddtofigepilog#1{\egp@figepilog=\expandafter{\the\egp@figepilog^^J#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\endegpfile}
+% And here is how we close the |egpfile| environment:
+% \begin{macrocode}
+\def\endegpfile{%
+ \egpwrite{\egpcomment\space the end.}%
+ \let\theegpfile\relax
+ \if@egpio
+ \immediate\closeout\@outegp
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egp}
+% \begin{macro}{\egpx}
+% \begin{macro}{\egpdef}
+% Here are the environments to define and to define and include the \GP{} diagrams.
+% \begin{macrocode}
+\newcommand{\egp}[1][*]{%
+ \def\egp@@name{#1}%
+ \egp@}
+\newcommand{\egpx}[2][*]{%
+ \def\egp@@name{#1}%
+ \egp@x{#2}}
+\newcommand{\egpdef}[1]{%
+ \def\egp@@name{#1}%
+ \egp@def}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\egp@}
+% \begin{macro}{\egp@x}
+% \begin{macro}{\egp@def}
+% And here the real work is done.
+% \begin{macrocode}
+\def\egp@{%
+ \egp@start%
+ \ifthenelse{\boolean{egp@oldgp}}
+ {\egpwrite{\egpcomment\space --- \theegpfile\theegpfig.eps ---}}
+ {\egpwrite{print 'generating picture ---- \theegpfile\theegpfig.eps'}}
+ \egpwrite{set output '\theegpfile\theegpfig.eps'}
+ \egp@includegraphics{\theegpfile}{\theegpfig}%
+ \egpcmds}
+\def\egp@x#1{%
+ \egp@start%
+ \ifthenelse{\boolean{egp@oldgp}}
+ {\egpwrite{\egpcomment\space --- \theegpfile\theegpfig.eps ---}}
+ {\egpwrite{print 'generating picture ---- \theegpfile\theegpfig.eps'}}
+ \egpwrite{set output '\theegpfile\theegpfig.eps'}
+ \egp@includegraphicx[#1]{\theegpfile}{\theegpfig}%
+ \egpcmds}
+\def\egp@def{%
+ \egp@start%
+ \ifthenelse{\boolean{egp@oldgp}}
+ {\egpwrite{\egpcomment\space --- \theegpfile\theegpfig.eps ---}}
+ {\egpwrite{print 'generating picture ---- \theegpfile\theegpfig.eps'}}
+ \egpwrite{set output '\theegpfile\theegpfig.eps'}
+ \egpcmds}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\egp@start}
+% \begin{macrocode}
+\def\egp@start{%
+ \egp@checkfile
+% \end{macrocode}
+% We can't use |\stepcounter| because of the |amstext| option of
+% AMS-\LaTeX{} disables it sometimes.
+% \begin{macrocode}
+ \global\expandafter\advance\csname c@egpfig\endcsname \@ne
+ \egp@@def{\egp@@name}%
+% \end{macrocode}
+% Start the \GP{} figure:
+% \begin{macrocode}
+ \expandafter\ifx\expandafter*\the\egp@figprelude*\else
+ \egpwrite{\the\egp@figprelude}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egp@checkfile}
+% Make sure that a \GP{} file is open, otherwise \emph{really}
+% obscure error messages are possible:
+% \begin{macrocode}
+\def\egp@checkfile{%
+ \ifx\theegpfile\relax
+ \errhelp={Outside an egpfile environment, I have no clue as to where^^J%
+ the gnuplot commands should go. I will use egpdefault.gp^^J%
+ for this graph, but you'd better fix your code!}%
+ \errmessage{I detected a egp environment outside of egpfile}%
+ \egpfile[egpdefault]
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egp@includegraphics}
+% \begin{macro}{\egp@includegraphicx}
+% Include the Postscript files that were generated by \GP{}
+% \begin{macrocode}
+\def\egp@includegraphics#1#2{%
+ \leavevmode
+ \IfFileExists{#1#2.eps}%
+ {\includegraphics{#1#2.eps}}%
+ {\typeout{%
+ egp: File #1#2.eps\space not found:^^J%
+ egp: Process \theegpfilename\space with gnuplot and then %
+ reprocess this file.}}}
+\newcommand{\egp@includegraphicx}[3][scale=1]{%
+ \leavevmode
+ \IfFileExists{#2#3.eps}%
+ {\includegraphics[#1]{#2#3.eps}}%
+ {\typeout{%
+ egp: File #2#3.eps\space not found:^^J%
+ egp: Process \theegpfilename\space with gnuplot and then %
+ reprocess this file.}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\egpcmds}
+% Write to the file:
+% \begin{macrocode}
+\def\egpcmds{%
+ \begingroup
+ \@bsphack
+ \let\do\@makeother\dospecials
+ \catcode`\^^M\active
+ \def\verbatim@processline{\egpwrite{\the\verbatim@line}}%
+ \verbatim@start}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\endegpcmds}
+% \begin{macrocode}
+\def\endegpcmds{%
+ \@esphack
+ \endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\endegp}
+% \begin{macro}{\endegpx}
+% \begin{macro}{\endegpdef}
+% If the |german| option is used the decimal point character is changed to be
+% |{,}|. This is done to avoid the additional space \LaTeX{} inserts after the
+% `,' in math mode. This is implemented by using some of the UN*X text utils
+% and therefore these have to be availlable on the system to benefit from this
+% feature.
+% \begin{macrocode}
+\def\endegp{%
+ \endegpcmds
+ \ifthenelse{\boolean{egp@german}}{%
+ \egpwrite{!sed -e '/[0-9]*[.][0-9]*)\ .show/s/[.]/,/' %
+ \theegpfile\theegpfig.eps >\theegpfile\theegpfig.tmp}
+ \egpwrite{!cp \theegpfile\theegpfig.tmp \theegpfile\theegpfig.eps}
+ \egpwrite{!rm -f \theegpfile\theegpfig.tmp}}
+ {}
+ \expandafter\ifx\expandafter*\the\egp@figepilog*\else
+ \egpwrite{\the\egp@figepilog}%
+ \fi
+ \egpwrite{}}
+\def\endegpx{\endegp}
+\def\endegpdef{\endegp}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\egp@@def}
+% \begin{macrocode}
+\def\egp@@def#1{%
+ \global\e@namedef{egp@k:f:#1}{\theegpfile}%
+ \global\e@namedef{egp@k:c:#1}{\theegpfig}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\e@namedef}
+% \begin{macrocode}
+\def\e@namedef#1{\expandafter\edef\csname #1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egpuse}
+% Reuse a previously defined figure. The figure is referred to by the name
+% given on the |egp|, |egpx| or |egpdef| environment.
+% \begin{macrocode}
+\newcommand{\egpuse}[2][scale=1]{%
+ \@ifundefined{egp@k:f:#2}%
+ {\typeout{egp: \string\egpuse: `#2' undefined!}}%
+ {\egp@includegraphicx[#1]{\@nameuse{egp@k:f:#2}}{\@nameuse{egp@k:c:#2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egpcalc}
+% Calculate the expression in the required argument.
+% \begin{macrocode}
+\newcommand{\egpcalc}[2][*]{%
+ \def\egp@@name{#1}%
+ \def\egp@expression{#2}
+ \egp@calc}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egp@calc}
+% Write the commands to the \GP{} file.
+% To get the calculated results in a file the \GP{} |table| terminal is used.
+% The number of samples is set to the lowest possible value and the |zero|
+% tolerance is set to 0.
+% \begin{macrocode}
+\def\egp@calc{%
+ \egp@checkfile
+ \global\expandafter\advance\csname c@egpcalc\endcsname \@ne
+ \egpc@@def{\egp@@name}%
+ \ifthenelse{\boolean{egp@oldgp}}
+ {\egpwrite{\egpcomment\space --- \theegpfile\theegpcalc.val ---}}
+ {\egpwrite{print 'calculating value ----- \theegpfile\theegpcalc.val'}}
+ \egpwrite{set term table; set output '\theegpfile\theegpcalc.tmp'^^J%
+ set samples 2^^J%
+ set zero 0^^J%
+ plot [0:0] \egp@expression}
+% \end{macrocode}
+%
+% Here intensive usage of UN*X text utils is made to extract the calculated
+% value out of the file \GP{} generated.
+%
+% If the |german| option is used the decimal point character is changed to be
+% `|{,}|'. This is done to avoid the additional space \LaTeX{} inserts after the
+% `,' in math mode.
+%
+% Maybe someone is able to implement all this in \TeX{} what would make this
+% package much more portable.
+%
+% \begin{macrocode}
+ \ifthenelse{\boolean{egp@german}}{%
+ \egpwrite{!tail -3 \theegpfile\theegpcalc.tmp | head -1 |%
+ cut -f 2 -d' ' | sed -e 's/[.]/{,}/' %
+ >\theegpfile\theegpcalc.val}}
+ {\egpwrite{!tail -3 \theegpfile\theegpcalc.tmp | head -1 |%
+ cut -f 2 -d' ' >\theegpfile\theegpcalc.val}}
+ \egpwrite{!rm -f \theegpfile\theegpcalc.tmp}
+% \ifthenelse{\boolean{egp@oldgp}}{%
+% \egpwrite{load "reset.gp"}}{%
+% \egpwrite{reset}}
+ \egpwrite{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egpc@@def}
+% \begin{macrocode}
+\def\egpc@@def#1{%
+ \global\e@namedef{egp@k:f:#1}{\theegpfile}%
+ \global\e@namedef{egp@k:v:#1}{\theegpcalc}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egp@includevalue}
+% With this command the generated result is read into the \LaTeX{} file.
+% Unfortunately a trailing \verb*+\ + is shown after the included value what is
+% caused --- as I think --- by the |\input| command. There should be a way to
+% avoid this but I don't know how. Any wizards out there?
+% \begin{macrocode}
+\newcommand{\egp@includevalue}[2]{%
+% \InputIfFileExists{#1#2.val}{\ignorespaces}%
+ \IfFileExists{#1#2.val}%
+ {\input{#1#2.val}}%
+ {\typeout{%
+ egp: File #1#2.val\space not found:^^J%
+ egp: Process \theegpfilename\space with gnuplot and then %
+ reprocess this file.}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egpshowval}
+% Calculate and include the result during the \LaTeX{} run.
+% \begin{macrocode}
+\newcommand{\egpshowval}[2][*]{%
+ \def\egp@@name{#1}%
+ \def\egp@expression{#2}%
+ \egp@calc%
+ \egp@includevalue{\theegpfile}{\theegpcalc}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egpuseval}
+% Include a previously defined value.
+% \begin{macrocode}
+\newcommand{\egpuseval}[1]{%
+ \@ifundefined{egp@k:f:#1}%
+ {\typeout{egp: \string\egpuseval: `#1' undefined!}}%
+ {\egp@includevalue{\@nameuse{egp@k:f:#1}}{\@nameuse{egp@k:v:#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\egpassign}
+% \begin{macrocode}
+\newcommand{\egpassign}[2]{%
+ \egpwrite{#1=#2}\egpshowval{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% Define the file prelude:
+% If the user specifies that the official version \GP{}-3.5 is used a file with
+% the name |reset.gp| is generated at the start of the \GP{} run. Wherever a
+% |reset| is done in the \GP{}-3.6 file this file is |load|ed instead.
+% \begin{macrocode}
+\ifthenelse{\boolean{egp@oldgp}}
+ {\egpprelude{save "reset.gp"}}
+ {\relax}
+% \end{macrocode}
+%
+% Define the default prelude for the figures:
+% \begin{macrocode}
+\egpfigprelude{set terminal postscript eps monochrome dashed "Helvetica" 17}
+% \end{macrocode}
+% To get e.g. Computer Modern as font for the axis tics you can specify the
+% name of a CM-Type-1 font file as fontname option of the \GP{} postscript
+% terminal.
+% For example:
+% \begin{quote}
+% \begin{flushleft}
+% |\egpfigprelude{set terminal postscript eps monochrome dashed "CMSS17" 20}|
+% \end{flushleft}
+% \end{quote}
+% To see the correct font in the Postscript file you have to use the
+% appropriate fontmap when calling dvips or you have to download the file
+% |cmss17.pfb| as header file. The error message of dvips can then be
+% ignored.\\
+%
+%
+%
+% Reset all options to their default values after every |egp|, |egpx| and
+% |egpdef| environment.
+% As mentioned above the file |reset.gp| that is generated at the start of the
+% \GP{} run is |load|ed to implement the new |reset| command of \GP{}-3.6beta
+% if the user didn't specify |gnuplot36beta| as package option.
+% \begin{macrocode}
+\ifthenelse{\boolean{egp@oldgp}}{%
+ \egpfigepilog{load "reset.gp"}}{%
+ \egpfigepilog{reset}}
+% \end{macrocode}
+%
+% You can configure \EGP{} by putting the appropriate commands in the file
+% egplot.cfg that has to be located where \TeX{} can find it.
+% \begin{macrocode}
+\InputIfFileExists{egplot.cfg}
+ {\typeout{egp: Using configuration file 'egplot.cfg'}}
+ {}
+%</style>
+% \end{macrocode}
+%
+% \Finale
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \appendix
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section{Driver File}
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass[a4paper]{article}
+\usepackage{doc}
+\usepackage{multicol}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\IfFileExists{mflogo.sty}%
+ {\usepackage{mflogo}%
+ \def\GP{\textsf{gnuplot}}%
+ \def\EGP{\textsf{egplot}}%
+ \def\EMP{\textlogo{EMP}}}%
+ {\def\GP{\textsf{gnuplot}}%
+ \def\EMP{\textsf{EMP}}%
+ \def\EGP{\textsf{egplot}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\usepackage[gnuplot35]{egplot}
+%\usepackage[gnuplot36beta]{egplot}
+% \end{macrocode}
+% \begin{macrocode}
+\setlength{\parindent}{0pt}
+\def\manindex#1{\SortIndex{#1}{#1}}
+%<manual>\OnlyDescription
+\EnableCrossrefs
+\RecordChanges
+\CodelineIndex
+\DoNotIndex{\def,\gdef,\long,\let,\begin,\end,\if,\ifx,\else,\fi}
+\DoNotIndex{\immediate,\write,\newwrite,\openout,\closeout,\typeout}
+\DoNotIndex{\font,\jobname,\documentclass,\char,\catcode,\ }
+\DoNotIndex{\CodelineIndex,\DocInput,\DoNotIndex,\EnableCrossrefs}
+\DoNotIndex{\filedate,\filename,\fileversion,\logo,\manfnt}
+\DoNotIndex{\NeedsTeXFormat,\ProvidesPackage,\RecordChanges,\space}
+\DoNotIndex{\begingroup,\csname,\edef,\endcsname,\expandafter}
+\DoNotIndex{\usepackage,\@ifundefined,\ignorespaces,\item,\leavevmode}
+\DoNotIndex{\newcounter,\newif,\par,\parindent}
+\DoNotIndex{\relax,\setcounter,\stepcounter,\the,\advance}
+\DoNotIndex{\CurrentOption,\DeclareOption,\documentstyle}
+\DoNotIndex{\endgroup,\global,\hfuzz,\LaTeX,\LaTeXe}
+\DoNotIndex{\macrocode,\@makeother,\OnlyDescription,\PassOptionsToPackage}
+\DoNotIndex{\ProcessOptions,\RequirePackage,\string,\textsf,\unitlength}
+\DoNotIndex{\@bsphack,\@esphack,\@nameuse,\@ne,\active,\do,\dospecials}
+\DoNotIndex{\errhelp,\errmessage,\ifcase,\IfFileExists,\includegraphics}
+\DoNotIndex{\manindex,\SortIndex,\newcommand,\newtoks,\or,\origmacrocode}
+\DoNotIndex{\alpha,\displaystyle,\frac,\sin,\texttt}
+% \end{macrocode}
+% Cut the line breaking some slack for macro code which might contain
+% long lines (it doesn't really hurt if they stick out a bit).
+% \begin{macrocode}
+\let\origmacrocode\macrocode
+\def\macrocode{\hfuzz 5em\origmacrocode}
+\begin{document}
+ \DocInput{egplot.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/egplot/egplot.ins b/macros/latex/contrib/egplot/egplot.ins
new file mode 100644
index 0000000000..8fab3562fe
--- /dev/null
+++ b/macros/latex/contrib/egplot/egplot.ins
@@ -0,0 +1,74 @@
+% egplot.ins - Encapsulated gnuplot for LaTeX(2e)
+% Copyright (C) 1998 by Axel.Probst@bam.de
+%
+% Emp is free software; you can redistribute it and/or modify it
+% under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% Emp is distributed in the hope that it will be useful, but
+% WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def\batchfile{egplot.ins}
+\input docstrip.tex
+\keepsilent
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\preamble
+
+Copyright (C) 1998 by Axel.Probst@bam.de
+
+This file is NOT the source for emp, because almost all comments
+have been stripped from it. It is NOT the preferred form of emp
+for making modifications to it.
+
+Therefore you can NOT redistribute and/or modify THIS file. You can
+however redistribute the complete source (emp.dtx and emp.ins)
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2, or (at
+your option) any later version.
+
+As a special exception, you can redistribute parts of this file for
+the electronic distribution of scientific papers, provided that you
+include a short note pointing to the complete source.
+
+Emp is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+\endpreamble
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\Msg{Generating style file egplot.sty for the egplot package:}
+\generateFile{egplot.sty}{f}{\from{egplot.dtx}{style}}
+\Msg{Generating driver file for manual egpman.drv:}
+\generateFile{egpman.drv}{f}{\from{egplot.dtx}{driver,manual}}
+\Msg{Generating driver file for documentation egplot.drv:}
+\generateFile{egplot.drv}{f}{\from{egplot.dtx}{driver}}
+
+\Msg{***************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the file}
+\Msg{* egplot.sty into a directory searched by TeX}
+\Msg{*}
+\Msg{* Optionally you can copy the file egpman.dvi into a}
+\Msg{* directory searched by TeX, so that users can print}
+\Msg{* a copy of the documentation.}
+\Msg{*}
+\Msg{***************************************************************}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
diff --git a/macros/latex/contrib/egplot/egplot.pdf b/macros/latex/contrib/egplot/egplot.pdf
new file mode 100644
index 0000000000..08ade0b972
--- /dev/null
+++ b/macros/latex/contrib/egplot/egplot.pdf
Binary files differ
diff --git a/macros/latex/contrib/egplot/manual.ps.gz b/macros/latex/contrib/egplot/manual.ps.gz
new file mode 100644
index 0000000000..2c80eeef14
--- /dev/null
+++ b/macros/latex/contrib/egplot/manual.ps.gz
Binary files differ