summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-09-19 16:18:29 +0000
committerKarl Berry <karl@freefriends.org>2010-09-19 16:18:29 +0000
commit96b0b0d816058a1ec98b27f72d6bd57a82e5bf5d (patch)
treebf4564ef02357935f01e4a31eaa816b33a990e19 /Master/texmf-dist
parent77215650a9e7341885b43f4abd9c747055caca1c (diff)
numericplots (minus matlab)
git-svn-id: svn://tug.org/texlive/trunk@19805 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/BasicFunctionality.tex632
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/FurtherExamples.tex196
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/License.txt674
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/MultiplePlots.tex180
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/NumericPlots.pdfbin0 -> 108189 bytes
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/NumericPlotsDoc.tex171
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/README.TEXLIVE11
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/README.doc30
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/TechnicalDetails.tex135
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/TestPlots.tex122
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/history.tex62
-rw-r--r--Master/texmf-dist/doc/latex/numericplots/options.tex28
-rw-r--r--Master/texmf-dist/tex/latex/numericplots/NumericPlots.sty1054
13 files changed, 3295 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/numericplots/BasicFunctionality.tex b/Master/texmf-dist/doc/latex/numericplots/BasicFunctionality.tex
new file mode 100644
index 00000000000..b738a0e4789
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/BasicFunctionality.tex
@@ -0,0 +1,632 @@
+% Copyright 2010 Thomas König, Alexander Michel
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+\part{Using the package}
+
+\section{Basic Functionality}
+
+The package NumericPlots\\
+\verb+\usepackage{NumericPlots}+
+\\
+is intended to be used to plot numeric data which
+may, e.g., be exported from Matlab by export2latex.m. The data must be defined
+in the form
+\begin{verbatim}
+ \def\IdentI{
+ 1.0 1.0e2
+ 1.1 11e1
+ 1.2 1.25e2
+ 1.3 110
+ 1.4 100
+ 1.5 90
+ 1.6 80
+ }
+\end{verbatim}
+\def\IdentI{
+ 1.0 1.0e2
+ 1.1 11e1
+ 1.2 1.25e2
+ 1.3 110
+ 1.4 100
+ 1.5 90
+ 1.6 80
+ }
+\def\IdentII{
+ 1.0 125
+ 1.05 100
+ 1.1 75
+ 1.15 85
+ 1.2 90
+ 1.3 115
+ 1.4 130
+ 1.5 125
+ 1.6 120
+ }
+\def\LogData{
+ 6 6
+ 10 10
+ 20 20
+ 30 30
+ 40 40
+ 50 50
+ 60 60
+ 70 70
+ 80 80
+ 90 90
+ 100 100
+ 200 200
+ 300 300
+ 400 400
+ 500 500
+ 600 600
+ 700 700
+ 800 800
+ 900 900
+ 1000 1000
+ 1100 1100
+ 1200 1200
+ 1300 1300
+ 1400 1400
+ 1500 1500
+}
+where the first column contains the x, the second column the y-data.
+
+\subsection{plots}
+
+% \begin{LTXExample}
+% \begin{NumericDataPlot}{\textwidth}{5cm}
+% \setxAxis{xMin=1, xMax=2, Dx=0.1}
+% \setyAxis{yMin=50, yMax=150, Dy=25}
+%
+% \plotxAxis{x-axis label}
+% \plotyAxis{y-axis label}
+%
+% \listplot[style=StdLineStyA]{\IdentI}
+% \end{NumericDataPlot}
+% \end{LTXExample}
+
+The easiest plot may be done by
+\begin{verbatim}
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=-1, xMax=2, Dx=0.5}
+ \setyAxis{yMin=-50, yMax=150, Dy=25}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis{y-axis label}
+
+ \listplot[style=StdLineStyA]{\IdentI}
+ \end{NumericDataPlot}
+\end{verbatim}
+\begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=-1, xMax=2, Dx=0.5, xO=0}
+ \setyAxis{yMin=-50, yMax=150, Dy=25, yO=0}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis{y-axis label}
+
+ \listplot[style=StdLineStyA]{\IdentI}
+\end{NumericDataPlot}
+
+if you want to add a legend, you simply call
+
+\begin{minipage}{0.5\linewidth}
+\begin{verbatim}
+\LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI
+}
+\end{verbatim}
+\end{minipage}\begin{minipage}{0.5\linewidth}
+\centering
+\LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI
+}
+\end{minipage}
+
+To plot multiple data in one plot call \newline
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=2, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis{y-axis label}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+ \listplot[style=StdLineStyB]
+ {\IdentII}
+
+ \putSE{\LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI \\
+ \LegLine{style=StdLineStyB} & IdentII
+ }}
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}[T]{0.5\linewidth}
+ \vspace{10pt}
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=1, xMax=2, Dx=0.2}
+ \setyAxis{yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis{y-axis label}
+
+ \listplot[style=StdLineStyA]{\IdentI}
+ \listplot[style=StdLineStyB]{\IdentII}
+
+ \putSE{\LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI \\
+ \LegLine{style=StdLineStyB} & IdentII
+ }}
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+\subsection{Label and TickLabels}
+
+The commands \texttt{plotxAxis} and \texttt{plotyAxis} take the options
+\texttt{NoLabel}, \texttt{NoTicks}, \texttt{NoTickLabel} as well as
+\texttt{LabelOption} and \texttt{TickLabelOption} which may be used to eliminate
+or change the look of the labels.
+
+Standard values for \texttt{LabelOption} and \texttt{TickLabelOption} may be set
+by \verb|\newcommand{\StdLabelOption}{\color{blue}| and
+\verb|\newcommand{\StdTickLabelOption}{\small}|.
+
+The option \texttt{xLabelSep} for \verb|\plotxAxis| (and \texttt{yLabelSep} for
+\verb|\plotyAxis|) may be used to set the seperation between the axis and the label. Standard value
+is 10pt for the x-label and 20pt for the y-label.
+
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis{yMin=75, yMax=130, Dy=25}
+
+ \plotxAxis
+ [LabelOption=\LARGE,%
+ TickLabelOption=\color{red},%
+ xLabelSep=40pt]
+ {x-axis label}
+ \plotyAxis
+ [NoLabel, NoTicks, NoTickLabel]
+ {y-axis label}
+
+ \listplot[style=StdLineStyA]{\IdentI}
+ \listplot[style=StdLineStyB]{\IdentII}
+
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}[T]{0.5\linewidth}
+ \vspace{10pt}
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis{yMin=75, yMax=130, Dy=25}
+
+ \plotxAxis[LabelOption=\LARGE, TickLabelOption=\color{red},
+ xLabelSep=40pt]{x-axis label}
+ \plotyAxis[NoLabel, NoTicks, NoTickLabel]{y-axis label}
+
+ \listplot[style=StdLineStyA]{\IdentI}
+ \listplot[style=StdLineStyB]{\IdentII}
+
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+\subsection{Place ``Objects'' in the plot.}
+
+There are basically two different options to place objects in the plot. To
+understand the difference one has to keep in mind that the axis have two
+different coordinate systems. One is the system defined by xMin, xMax, yMin and
+yMax (refered to as ``DataCoordinateSystem''), the other ist the system defined
+by xCoordMin, xCoordMax, yCoordMin and yCoordMax (refered to as
+``PictureCoordinateSystem''), see section \ref{sec:MultiplePlots}.
+
+It is now possible to place stuff in the graph with the DataCoordinates with the
+command NDPput, see the following example.
+
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=2, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis[NoLabel]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ % put some stuff somewhere
+ \NDPput[x=1.2, y=75, RefPoint=br]{text}
+ \NDPput[x=1.2, y=100]{$a^2$}
+
+ % or put nodes...
+ \NDPput[x=1.6, y=100]{\pnode{A}}
+ \NDPput[x=1.8, y=150]{\pnode{B}}
+ % ...and draw a line between them
+ \ncline{A}{B}
+
+ % or put the legend at a specific position
+ \NDPput[x=1.8, y=75]{\LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI
+ }}
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}[T]{0.5\linewidth}
+ \vspace{10pt}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=2, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis[NoLabel]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ % put some stuff somewhere
+ \NDPput[x=1.2, y=75, RefPoint=br]{text}
+ \NDPput[x=1.2, y=100]{$a^2$}
+
+ % or put nodes...
+ \NDPput[x=1.6, y=100]{\pnode{A}}
+ \NDPput[x=1.8, y=150]{\pnode{B}}
+ % ...and draw a line between them
+ \ncline{A}{B}
+
+ % or put the legend at a specific position
+ \NDPput[x=1.8, y=75]{\LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI
+ }}
+ \end{NumericDataPlot}
+\end{minipage}
+
+Alternatively, stuff can be placed within the plot with \verb|\rput|.
+
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis[NoLabel]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ % put text in the middle of the plot
+ \rput{45}(500,500){text}
+ % put a formula in the lower left corner
+ \rput[bl](0,0){$a^2+b^2=c^2$}
+
+ % or put nodes...
+ \NDPput[x=1.2, y=125]{\pnode{A}}
+ \rput(750,900){\Rnode{B}{peak}}
+ % ...and draw a line between them
+ \ncline{<-}{A}{B}
+
+ % or put the legend at a specific position
+ \rput{-45}(750,250){\LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI
+ }}
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}[T]{0.5\linewidth}
+ \vspace{10pt}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis[NoLabel]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ % put text in the middle of the plot
+ \rput{45}(500,500){text}
+ % put a formula in the lower left corner
+ \rput[bl](0,0){$a^2+b^2=c^2$}
+
+ % or put nodes...
+ \NDPput[x=1.2, y=125]{\pnode{A}}
+ \rput(750,900){\Rnode{B}{peak}}
+ % ...and draw a line between them
+ \ncline{<-}{A}{B}
+
+ % or put the legend at a specific position
+ \rput{-45}(750,250){\LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI
+ }}
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+
+\subsection{Line Styles}
+
+\subsection{Legend}
+
+The legend may be created with \verb|\LegendDefinition|. The command takes the
+two optional arguments \texttt{nrCols} and \texttt{LabelOrientation=[l|c|r]}.
+The mandatory argument is the definition of a table as demonstrated in the
+follwing examples.
+
+ \begin{verbatim}
+ \LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI\\
+ \LegLine{style=StdLineStyB, linewidth=3pt} & second legend
+ }
+ \end{verbatim}
+ \LegendDefinition{
+ \LegLine{style=StdLineStyA} & IdentI\\
+ \LegLine{style=StdLineStyB, linewidth=3pt} & second legend
+ }
+ \begin{verbatim}
+ \LegendDefinition[nrCols=2]{
+ \LegLine{style=StdLineStyA} & IdentI &
+ \LegLine{style=StdLineStyB, linewidth=3pt} & legend 2
+ }
+ \end{verbatim}
+ \LegendDefinition[nrCols=2]{
+ \LegLine{style=StdLineStyA} & IdentI &
+ \LegLine{style=StdLineStyB, linewidth=3pt} & legend 2
+ }
+ \begin{verbatim}
+ \LegendDefinition[LabelOrientation=c]{
+ \LegLine{style=StdLineStyA} & IdentI\\
+ \LegLine{style=StdLineStyB, linewidth=3pt} & legend 2 \\
+ \LegLine{style=StdLineStyC} & whatever this data is\ldots\\
+ \LegLine{style=StdLineStyD} & and more data
+ }
+ \end{verbatim}
+ \LegendDefinition[LabelOrientation=c]{
+ \LegLine{style=StdLineStyA} & IdentI\\
+ \LegLine{style=StdLineStyB, linewidth=3pt} & second legend\\
+ \LegLine{style=StdLineStyC} & whatever this data is\ldots\\
+ \LegLine{style=StdLineStyD} & and more data
+ }
+
+\subsection{Add Lines to the Plot}
+
+Horizontal and vertical lines may be added to the plot with the commands
+\verb|\NDPhline{coord}| and \verb|\NDPvline{coord}|. It is also possible to put
+nodes and draw lines between them, see placing stuff\ldots
+
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis[NoLabel]{}
+ \plotyAxis[NoLabel]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ \NDPhline[linecolor=LineColorD]{73}
+ \NDPvline[linecolor=LineColorE, linestyle=dashed]{1.5}
+ \NDPline[linecolor=red]{1.1}{75}{1.3}{125}
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}[T]{0.5\linewidth}
+ \vspace{10pt}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis[NoLabel]{}
+ \plotyAxis[NoLabel]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ \NDPhline[linecolor=LineColorD]{73}
+ \NDPvline[linecolor=LineColorE, linestyle=dashed]{1.5}
+ \NDPline[linecolor=red]{1.1}{75}{1.3}{125}
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+
+
+\subsection{Grid}
+
+One may choose not to plot the grid with the option \texttt{NoGrid} for the
+commands \verb|\plotxAxis| and \verb|\plotyAxis|.
+
+If the grid is plottet with the axis it may happen that the grid is plottet over
+the axis. To avoid this, plot the grid first and then plot the axis as shown.
+
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxGrid
+ \plotyGrid
+ \plotxAxis
+ [NoLabel, NoGrid, AxisStyle=Boxed]{}
+ \plotyAxis
+ [NoLabel, NoGrid, AxisStyle=Boxed]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}[T]{0.5\linewidth}
+ \vspace{10pt}
+ \begin{NumericDataPlot}
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxGrid
+ \plotyGrid
+ \plotxAxis[NoLabel, NoGrid, AxisStyle=Boxed]{}
+ \plotyAxis[NoLabel, NoGrid, AxisStyle=Boxed]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+\subsection{Logarithmic axes}
+
+
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis
+ {xMin=6, xMax=2500, Dx=10, xLog}
+ \setyAxis
+ {yMin=0, yMax=2500, Dy=500}
+ \plotxAxis{}
+ \plotyAxis{}
+
+ \listplot{\LogData}
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}[T]{0.5\linewidth}
+ \vspace{10pt}
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=6, xMax=2500, Dx=10, xLog}
+ \setyAxis{yMin=0, yMax=2500, Dy=500}
+ \plotxAxis{}
+ \plotyAxis{}
+
+ \listplot{\LogData}
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=1500, Dx=10, xLog}
+ \setyAxis
+ {yMin=1, yMax=1500, Dy=10, yLog}
+ \plotxAxis{}
+ \plotyAxis{}
+
+ \listplot{\LogData}
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+\begin{minipage}[T]{0.5\linewidth}
+ \vspace{10pt}
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=1, xMax=1500, Dx=10, xLog}
+ \setyAxis{yMin=1, yMax=1500, Dy=10, yLog}
+ \plotxAxis{}
+ \plotyAxis{}
+
+ \listplot{\LogData}
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+
+
+
+\subsection{export2latex.m}
+
+The function \texttt{export2latex(data, filename, [options])} may be used to
+export data from Matlab to be used with NumericPlots.sty. The function takes the two parameters
+data and filename, where filename is the name of the file where the data should
+be stored with full path but without extension. Data is a structure with the
+three entries x, y, and ident, where x are the x-data, y the y-data and ident is
+an identifier to have access to the data in Latex. To access the data in Latex
+the command \verb+\Data<ident>+ is used.
+
+The parameter data may be provided as an 1xK array if each entry of the array is
+a structure with the entries x, y and ident. There may be an additional entry
+descr.
+\begin{itemize}
+ \item data(1,i).x = $X_i$
+ \item data(1,i).y = $Y_i$
+ \item data(1,i).ident = Identifier
+ \item (data(1,i).descr = Description)
+\end{itemize}
+Identifier must be a valid Latex command name, which basically means it must be
+a string without numbers.
+
+For every entry of data, $X$ and $Y$ must be arrays of the same size
+$M\text{x}N$. If $M>1$, each column of the array is exported to the file and the
+identifier is expanded by the roman representation of the column number.
+
+It might be useful to do a \texttt{interp1} before exporting the data to get
+smaller files and to use less of \TeX's memory. ($\rightarrow$ script
+Patrick?!?)
+
+The optional parameter \texttt{options} might be used to control which
+additional information is provided in the output file.
+\begin{itemize}
+ \item \texttt{options.DataBoundaries} [true] If set to true, the output file
+ contains the commands \verb+\DataXmin+, \verb+\DataXmax+, \verb+\DataYmin+ and
+ \verb+\DataYmax+ which may be used to define the axis.
+ \item \texttt{options.AxisBoundaries} [false] If set to true, the output file
+ contains the commands \verb+\DataXminAxis+, \verb+\DataXmaxAxis+,
+ \verb+\DataYminAxis+ and \verb+\DataYmaxAxis+ which may be used to define the
+ axis. In contrary to the DataBoundaries the AxisBoundaries add an additional
+ gap of \texttt{options.AxisBoundariesGap} [10] percent of the full scale to
+ the data boundaries such that the plot doesn't touch the axis.
+\end{itemize}
+
diff --git a/Master/texmf-dist/doc/latex/numericplots/FurtherExamples.tex b/Master/texmf-dist/doc/latex/numericplots/FurtherExamples.tex
new file mode 100644
index 00000000000..458a1906899
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/FurtherExamples.tex
@@ -0,0 +1,196 @@
+% Copyright 2010 Thomas König, Alexander Michel
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+\part{Examples}
+
+\section{Further Examples}
+
+\def\MoreData{
+0 5
+1 7
+2 10
+3 11
+4 11.5
+5 10
+6 5
+7 4
+8 9
+9 12
+10 11
+11 5
+}
+
+\def\MoreDataI{
+0 -5
+1 -7
+2 -10
+3 -11
+4 -11.5
+5 -10
+6 10
+7 15
+8 10
+9 -12
+10 -11
+11 -5
+}
+
+\begin{minipage}{0.5\linewidth}
+\begin{verbatim}
+ \listplot
+ [style=StdLineStyA]
+ {\MoreData}
+ \listplot
+ [style=StdLineStyB, yEnd=10]
+ {\MoreData}
+ \listplot
+ [style=StdLineStyC, xStart=5, xEnd=9]
+ {\MoreData}
+ \listplot
+ [style=StdLineStyD, showpoints=true, nStep=2]
+ {\MoreData}
+\end{verbatim}
+\end{minipage}\begin{minipage}{0.5\linewidth}
+\centering
+\begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=0, xMax=15, Dx=5, xO=0}
+ \setyAxis{yMin=0, yMax=15, Dy=5, yO=0}
+
+ \plotxAxis[NoLabel]{x-axis label}
+ \plotyAxis[NoLabel]{y-axis label}
+
+ \listplot[style=StdLineStyA]{\MoreData}
+ \listplot[style=StdLineStyB, yEnd=10]{\MoreData}
+ \listplot[style=StdLineStyC, xStart=5, xEnd=9]{\MoreData}
+ \listplot[style=StdLineStyD, showpoints=true, nStep=2]{\MoreData}
+\end{NumericDataPlot}
+\end{minipage}
+
+
+\begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=0, xMax=15, Dx=5, xO=0}
+ \setyAxis{yMin=0, yMax=15, Dy=5, yO=10}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis{y-axis label}
+
+ \listplot[style=StdLineStyA, yMaxValue=10]{\MoreData}
+\end{NumericDataPlot}
+
+
+\subsection{Fill area between plots}
+
+\begin{minipage}{0.5\linewidth}
+\begin{verbatim}
+ \begin{NumericDataPlot}%
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=0, xMax=15, Dx=5, xO=0}
+ \setyAxis
+ {yMin=-15, yMax=15, Dy=5, yO=10}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis[NoLabel]{}
+
+ \pscustom%
+ [style=StdLineStyA, fillstyle=solid, %
+ fillcolor=blue!40]{%
+ \listplot{\MoreData}%
+ \listplot[ChangeOrder]{\MoreDataI}%
+ }
+ \end{NumericDataPlot}
+\end{verbatim}
+\end{minipage}\begin{minipage}{0.5\linewidth}
+\centering
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=0, xMax=15, Dx=5, xO=0}
+ \setyAxis{yMin=-15, yMax=15, Dy=5, yO=10}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis[NoLabel]{}
+
+ \pscustom[style=StdLineStyA, fillstyle=solid, fillcolor=blue!40]{%
+ \listplot{\MoreData}%
+ \listplot[ChangeOrder]{\MoreDataI}%
+ }
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+
+
+
+
+\begin{minipage}{0.5\linewidth}
+\begin{verbatim}
+ ...
+ \pscustom%
+ [style=StdLineStyA, fillstyle=solid, %
+ fillcolor=green!40]{%
+ \NDPhline{0}
+ \listplot[ChangeOrder]{\MoreDataI}%
+ }
+ ...
+\end{verbatim}
+\end{minipage}\begin{minipage}{0.5\linewidth}
+\centering
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=0, xMax=15, Dx=5, xO=0}
+ \setyAxis{yMin=-15, yMax=15, Dy=5, yO=10}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis[NoLabel]{}
+
+ \pscustom%
+ [style=StdLineStyA, fillstyle=solid, %
+ fillcolor=green!40]{%
+ \NDPhline{0}
+ \listplot[ChangeOrder]{\MoreDataI}%
+ }
+ \end{NumericDataPlot}
+\end{minipage}
+
+
+\begin{minipage}{0.5\linewidth}
+\begin{verbatim}
+ ...
+ \pscustom%
+ [style=StdLineStyA, fillstyle=solid, %
+ fillcolor=red!40]{%
+ \NDPline{0}{5}{11}{10}
+ \listplot[ChangeOrder]{\MoreDataI}%
+ }
+ ...
+\end{verbatim}
+\end{minipage}\begin{minipage}{0.5\linewidth}
+\centering
+ \begin{NumericDataPlot}{\textwidth}{5cm}
+ \setxAxis{xMin=0, xMax=15, Dx=5, xO=0}
+ \setyAxis{yMin=-15, yMax=15, Dy=5, yO=10}
+
+ \plotxAxis{x-axis label}
+ \plotyAxis[NoLabel]{}
+
+ \pscustom%
+ [fillstyle=solid, linestyle=none,%
+ fillcolor=red!40]{%
+ \NDPline{0}{5}{11}{10}
+ \listplot[ChangeOrder]{\MoreDataI}%
+ }
+ \listplot[style=StdLineStyB]{\MoreDataI}
+ \end{NumericDataPlot}
+\end{minipage} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/numericplots/License.txt b/Master/texmf-dist/doc/latex/numericplots/License.txt
new file mode 100644
index 00000000000..94a9ed024d3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/License.txt
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program 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 3 of the License, or
+ (at your option) any later version.
+
+ This program 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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/Master/texmf-dist/doc/latex/numericplots/MultiplePlots.tex b/Master/texmf-dist/doc/latex/numericplots/MultiplePlots.tex
new file mode 100644
index 00000000000..e286e1fa9cf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/MultiplePlots.tex
@@ -0,0 +1,180 @@
+% Copyright 2010 Thomas König, Alexander Michel
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+
+\section{Multiple plots in one picture}\label{sec:MultiplePlots}
+
+xPicMin, xPicMax, yPicMin and yPicMax are the inner coordinates of one picture.
+The position of the axes are defined in this coordinate system via xCoordMin,
+xCoordMax, yCoordMin and yCoordMax.
+
+Example:
+
+\begin{verbatim}
+% input data and define linestyles
+\input{DataTestRealData}
+\newpsstyle{Database}{linecolor=LineColorA, linestyle=none, dotstyle=*,
+showpoints=true, dotsize=5pt}
+\newpsstyle{Result}{linecolor=LineColorB, linestyle=none, dotstyle=+,
+showpoints=true, dotsize=10pt}
+
+\begin{center}
+ \begin{NumericDataPlot}[xPicMin=0, xPicMax=1050,
+ yPicMin=0, yPicMax=1450]{\textwidth}{0.75\textheight}
+
+ % --- definition of the axis and the grid ---
+ % set the axis of the lower left corner
+ \setxAxis{xMin=2, xMax=17, Dx=4, xCoordMin=0, xCoordMax=500}
+ \setyAxis{yMin=20, yMax=70, Dy=20, yCoordMin=0, yCoordMax=500}
+
+ % plot the axis of the lower left corner
+ \plotxAxis{Stichnummer}
+ \plotyAxis{$F_{roll}$ in $\mega\newton$}
+
+ \listplot[style=Database]{\DataDBforce}
+ \listplot[style=Result]{\DataRESforce}
+ \listplot[style=StdLineStyC]{\DataDBforceC}
+ \listplot[style=StdLineStyD]{\DataDBforceD}
+ \listplot[style=StdLineStyE]{\DataDBforceE}
+ \listplot[style=StdLineStyF]{\DataDBforceF}
+ \listplot[style=StdLineStyG]{\DataDBforceG}
+
+ % set the y-axis for the plot in the middle of the left side
+ % x-axis remains the same
+ \setyAxis{yMin=20, yMax=70, Dy=20, yCoordMin=550, yCoordMax=1050}
+ % plot the axis (x-axis without ticklabels and label
+ \plotxAxis[NoTickLabel, NoLabel]{}
+ \plotyAxis{$F_{roll}$ in $\mega\newton$}
+
+ \rput[t]{0}(250,550){a) Ein plot}
+
+ \listplot[style=Database]{\DataDBforce}
+ \listplot[style=Result]{\DataRESforce}
+
+ % set axis for the plot at the right side
+ \setxAxis{xMin=2, xMax=17, Dx=4, xCoordMin=600, xCoordMax=1050}
+ \setyAxis{yMin=20, yMax=70, Dy=10, yCoordMin=0, yCoordMax=1050}
+
+ % plot the axis at the right side (y-axis without label)
+ \plotxAxis{Stichnummer}
+ \plotyAxis[NoLabel, TickSep=10]{$F_{roll}$ in $\mega\newton$}
+
+ \listplot[style=Database]{\DataDBforce}
+ \listplot[style=Result]{\DataRESforce}
+ \listplot[style=StdLineStyC]{\DataDBforceC}
+ \listplot[style=StdLineStyD]{\DataDBforceD}
+ \listplot[style=StdLineStyE]{\DataDBforceE}
+ \listplot[style=StdLineStyF]{\DataDBforceF}
+ \listplot[style=StdLineStyG]{\DataDBforceG}
+
+ % set the axis for the plot at the top
+ \setxAxis{xMin=8, xMax=17, Dx=1, xCoordMin=0, xCoordMax=1050}
+ \setyAxis{yMin=35, yMax=65, Dy=10, yO=40, yCoordMin=1150, yCoordMax=1450}
+
+ % plot the axis for the plot at the top
+ \plotxAxis[NoLabel]{Stichnummer}
+ \plotyAxis[NoLabel]{$F_{roll}$ in $\mega\newton$}
+
+ % plot only part of the data
+ \listplot[style=Database, xStart=11, xEnd=17]{\DataDBforce}
+ \listplot[style=Result, xStart=8, xEnd=13]{\DataRESforce}
+
+ \end{NumericDataPlot}
+
+ % put legend outside of the plot
+ \LegendDefinition[nrCols=1, LabelOrientation=r]{
+ \LegLine{Database} & Werte aus der Datenbank \\
+ \LegLine{Result} & Modell}
+
+\end{center}
+\end{verbatim}
+
+% input data and define linestyles
+\input{DataTestRealData}
+\newpsstyle{Database}{linecolor=LineColorA, linestyle=none, dotstyle=*,
+showpoints=true, dotsize=5pt}
+\newpsstyle{Result}{linecolor=LineColorB, linestyle=none, dotstyle=+,
+showpoints=true, dotsize=10pt}
+
+\begin{center}
+ \begin{NumericDataPlot}[xPicMin=0, xPicMax=1050,
+ yPicMin=0, yPicMax=1450]{\textwidth}{0.75\textheight}
+
+ % --- definition of the axis and the grid ---
+ % set the axis of the lower left corner
+ \setxAxis{xMin=2, xMax=17, Dx=4, xCoordMin=0, xCoordMax=500}
+ \setyAxis{yMin=20, yMax=70, Dy=20, yCoordMin=0, yCoordMax=500}
+
+ % plot the axis of the lower left corner
+ \plotxAxis{Stichnummer}
+ \plotyAxis{$F_{roll}$ in $\mega\newton$}
+
+ \listplot[style=Database]{\DataDBforce}
+ \listplot[style=Result]{\DataRESforce}
+ \listplot[style=StdLineStyC]{\DataDBforceC}
+ \listplot[style=StdLineStyD]{\DataDBforceD}
+ \listplot[style=StdLineStyE]{\DataDBforceE}
+ \listplot[style=StdLineStyF]{\DataDBforceF}
+ \listplot[style=StdLineStyG]{\DataDBforceG}
+
+ % set the y-axis for the plot in the middle of the left side
+ % x-axis remains the same
+ \setyAxis{yMin=20, yMax=70, Dy=20, yCoordMin=550, yCoordMax=1050}
+ % plot the axis (x-axis without ticklabels and label
+ \plotxAxis[NoTickLabel, NoLabel]{}
+ \plotyAxis{$F_{roll}$ in $\mega\newton$}
+
+ \rput[t]{0}(250,550){a) Ein plot}
+
+ \listplot[style=Database]{\DataDBforce}
+ \listplot[style=Result]{\DataRESforce}
+
+ % set axis for the plot at the right side
+ \setxAxis{xMin=2, xMax=17, Dx=4, xCoordMin=600, xCoordMax=1050}
+ \setyAxis{yMin=20, yMax=70, Dy=10, yCoordMin=0, yCoordMax=1050}
+
+ % plot the axis at the right side (y-axis without label)
+ \plotxAxis{Stichnummer}
+ \plotyAxis[NoLabel, TickSep=10]{$F_{roll}$ in $\mega\newton$}
+
+ \listplot[style=Database]{\DataDBforce}
+ \listplot[style=Result]{\DataRESforce}
+ \listplot[style=StdLineStyC]{\DataDBforceC}
+ \listplot[style=StdLineStyD]{\DataDBforceD}
+ \listplot[style=StdLineStyE]{\DataDBforceE}
+ \listplot[style=StdLineStyF]{\DataDBforceF}
+ \listplot[style=StdLineStyG]{\DataDBforceG}
+
+ % set the axis for the plot at the top
+ \setxAxis{xMin=8, xMax=17, Dx=1, xCoordMin=0, xCoordMax=1050}
+ \setyAxis{yMin=35, yMax=65, Dy=10, yO=40, yCoordMin=1150, yCoordMax=1450}
+
+ % plot the axis for the plot at the top
+ \plotxAxis[NoLabel]{Stichnummer}
+ \plotyAxis[NoLabel]{$F_{roll}$ in $\mega\newton$}
+
+ % plot only part of the data
+ \listplot[style=Database, xStart=11, xEnd=17]{\DataDBforce}
+ \listplot[style=Result, xStart=8, xEnd=13]{\DataRESforce}
+
+ \end{NumericDataPlot}
+
+ % put legend outside of the plot
+ \LegendDefinition[nrCols=1, LabelOrientation=r]{
+ \LegLine{style=Database} & Werte aus der Datenbank \\
+ \LegLine{style=Result} & Modell}
+\end{center} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/numericplots/NumericPlots.pdf b/Master/texmf-dist/doc/latex/numericplots/NumericPlots.pdf
new file mode 100644
index 00000000000..c0816a9f8b0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/NumericPlots.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/numericplots/NumericPlotsDoc.tex b/Master/texmf-dist/doc/latex/numericplots/NumericPlotsDoc.tex
new file mode 100644
index 00000000000..9d6cbdb98fe
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/NumericPlotsDoc.tex
@@ -0,0 +1,171 @@
+% Copyright 2010 Thomas König, Alexander Michel, Michael Baumgart
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+
+\documentclass[parskip]{scrartcl}
+
+\usepackage[Gray]{SIunits}
+% \usepackage{floatbarrier}
+% \usepackage{showexpl}
+\usepackage{etex} % use e-TeX’s extended register set
+% options for package:
+% BW: black and white
+% AxisStyle=<style>: set standard axis style ([Boxed], Frame, FrameI, None)
+\usepackage[
+ %BW,
+ xAxisStyle=Lower,
+ yAxisStyle=Left,
+ ]{NumericPlots}
+
+\usepackage[
+ ps2pdf, %% similar to dvips but redefines some macros for use with ps2pdf
+ final,
+ bookmarks=true, %% if true, generate PDF bookmarks (requires two passes of pdflatex)
+ bookmarksopen=false, %% if true, show all PDF bookmarks expanded
+ bookmarksnumbered=true, %% if true, add the section numbers to the bookmarks
+% linkbordercolor=acin_red,
+% urlbordercolor=acin_red,
+% citebordercolor=acin_red,
+% filebordercolor=acin_red,
+ pdfpagemode=UseOutlines, %% None, UseOutlines (=show bookmarks), UseThumbs (show thumbnails), FullScreen
+% breaklinks,
+ pdfauthor = {Thomas Koenig Alexander Michel Michael Baumgart},
+ pdftitle = {NumericPlots - plot numeric data with latex},
+ pdfsubject = {},
+ plainpages=false,
+ hyperindex=true,
+]{hyperref}
+
+\title{NumericPlots - plot numeric data with latex}
+\author{Thomas K\"{o}nig, Alexander Michel, Michael Baumgart}
+\date{\today}
+
+\begin{document}
+
+% redefining the StdLabelOption and StdTickLabelOption applies to all following
+% plots.
+% \renewcommand{\StdLabelOption}{\LARGE}
+% \renewcommand{\StdTickLabelOption}{\LARGE}
+
+\maketitle
+
+Plotting numeric data is a task which often has to be done for scientific
+papers. In \LaTeX, however, it is only possible to include graphics created with
+an external program. The pstricks-packages provide many commands to
+generate graphics in \LaTeX. To generate simple graphics from numeric data,
+however, it is difficult to use. This package provides a simpler interface for
+the pstricks-package to plot numeric data.
+
+\tableofcontents
+
+\part{Introduction}
+
+Plotting numeric data is a task which often has to be done for scientific
+papers. In \LaTeX, however, it is only possible to include graphics created with
+an external program. The pstricks-packages provide very many commands to
+generate graphics in \LaTeX. To generate simple graphics from numeric data,
+however, it is difficult to use. This package provides a simpler interface for
+the pstricks-package to plot numeric data.
+
+NumericPlots 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 3 of the License, or
+any later version.
+
+NumericPlots 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 NumericPlots. If not, see http://www.gnu.org/licenses/.
+
+Copyright 2010 Thomas K\"{o}nig, Alexander Michel, Michael Baumgart
+
+
+% \part{Using the package} -> in BasicFunctionality
+
+\include{BasicFunctionality}
+
+\include{MultiplePlots}
+
+\section{package options}
+
+\section{list of commands and options}
+
+\include{options}
+
+\include{TechnicalDetails}
+
+
+% \part{Examples}
+
+\include{FurtherExamples}
+
+\include{TestPlots}
+
+
+% \part{Version}
+
+\include{history}
+
+% \section{Test Calculations}
+%
+% Teste setkeys
+%
+% Watch:
+%
+% \setkeys*[NumericDataPlot]{Axis}{xO=34, xMin=10}
+% \setrmkeys[NumericDataPlot]{AxisWait}
+% \begin{tabular}{ll}
+% xMin & \NumDataPlotxMin\\
+% \textbf{xO:} & \NumDataPlotxO \\
+% \end{tabular}
+%
+% \setkeys*[NumericDataPlot]{Axis}{xMin=10, xO=34}
+% \setrmkeys[NumericDataPlot]{AxisWait}
+% \begin{tabular}{ll}
+% xMin & \NumDataPlotxMin\\
+% \textbf{xO:} & \NumDataPlotxO \\
+% \end{tabular}
+%
+% \setkeys*[NumericDataPlot]{Axis}{xMin=10}
+% \setrmkeys[NumericDataPlot]{AxisWait}
+% \begin{tabular}{ll}
+% xMin & \NumDataPlotxMin\\
+% \textbf{xO:} & \NumDataPlotxO \\
+% \end{tabular}
+%
+% calculation example:
+
+% \setkeys*[NumericDataPlot]{Axis}{xO=34, xMax=20, xMin=10, Dx=2}
+% \setrmkeys[NumericDataPlot]{AxisWait}
+% \begin{tabular}{ll}
+% xCoordMin & \NumDataPlotxCoordMin\\
+% xCoordMax & \NumDataPlotxCoordMax \\
+% xMin: & \NumDataPlotxMin \\
+% xMax: & \NumDataPlotxMax \\
+% xCoordMax: & \NumDataPlotxCoordMax \\
+% xCoordMin: & \NumDataPlotxCoordMin \\
+% Dx: & \NumDataPlotDx \\
+% \textit{xNrTicks:} & \xNrTicks \\
+% %\textit{NumDataPlotdx} & \NumDataPlotdx\\
+% %\textit{NumDataPlotxCoordOrig} & \NumDataPlotdx\\
+% \textbf{xO:} & \NumDataPlotxO \\
+% \end{tabular}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/numericplots/README.TEXLIVE b/Master/texmf-dist/doc/latex/numericplots/README.TEXLIVE
new file mode 100644
index 00000000000..fc82eb8619a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/README.TEXLIVE
@@ -0,0 +1,11 @@
+The following files have been removed in the TeX Live installation of
+the current package, typically due to duplication, lack of space, or
+missing source code. You can find these files on CTAN at
+ http://mirror.ctan.org/graphics/numericplots
+If questions or concerns, email tex-live@tug.org.
+
+ struct2latex.m
+ roman.m
+ dspace2struct.m
+ export2latex.m
+ dspace2latex.m
diff --git a/Master/texmf-dist/doc/latex/numericplots/README.doc b/Master/texmf-dist/doc/latex/numericplots/README.doc
new file mode 100644
index 00000000000..df2bcb942a1
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/README.doc
@@ -0,0 +1,30 @@
+---------------------------------------------------------------------------
+The NumericPlots package --- LaTeX package to plot numeric data using pstricks
+Maintained by Thomas König, Alexander Michel, Michael Baumgart
+E-mail: NumericPlots@tikey.de
+Released under the GNU General Public License version 3 or later
+See <http://www.gnu.org/licenses/>
+----------------------------------------------------------------------------
+
+Copyright 2010 Thomas König, Alexander Michel, Michael Baumgart
+
+Plotting numeric data is a task which often has to be done for scientific
+papers. In \LaTeX, however, it is only possible to include graphics created with
+an external program. The pstricks-packages provide very many commands to
+generate graphics in \LaTeX. To generate simple graphics from numeric data,
+however, it is difficult to use. This package provides a simpler interface for
+the pstricks-package to plot numeric data.
+
+NumericPlots 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 3 of the License, or
+any later version.
+
+NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
diff --git a/Master/texmf-dist/doc/latex/numericplots/TechnicalDetails.tex b/Master/texmf-dist/doc/latex/numericplots/TechnicalDetails.tex
new file mode 100644
index 00000000000..bfbb7ac84ca
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/TechnicalDetails.tex
@@ -0,0 +1,135 @@
+% Copyright 2010 Thomas König, Alexander Michel
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+\section{Technical Details}
+
+This section should just give some hints how to use the different coordinate
+system.
+
+A new plot is created with the environment
+\texttt{NumericDataPlot}. The options are illustrated in the following example.
+
+\begin{minipage}[T]{0.5\linewidth}
+ \begin{verbatim}
+ \begin{NumericDataPlot}
+ [xPicMin=300, xPicMax=700]
+ {\textwidth}{5cm}
+ \setxAxis
+ {xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis
+ {yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis[NoLabel]{}
+ \plotyAxis[NoLabel]{}
+
+ \listplot[style=StdLineStyA]
+ {\IdentI}
+
+ \NDPhline[linecolor=LineColorD]{73}
+ \NDPvline[linecolor=LineColorE, linestyle=dashed]{1.5}
+ \end{NumericDataPlot}
+ \end{verbatim}
+\end{minipage}
+
+\vspace{1cm}
+\begin{center}
+\frame{
+ \begin{NumericDataPlot}
+ [xPicMin=300, xPicMax=700, yPicMin=200, yPicMax=700,
+ llx=-1cm, lly=-2cm, urx=15pt, ury=30pt]
+ {0.5\textwidth}{5cm}
+
+ \psline(300,200)(700,200)(700,700)(300,700)(300,200)
+ \pnode(300,200){PicLL}
+ \pnode(700,200){PicLR}
+ \pnode(700,700){PicUR}
+ \pnode(300,700){PicUL}
+ \rput(200,100){\Rnode{CapLL}{(xPicMin, yPicMin)}}
+ \ncline{->}{CapLL}{PicLL}
+ \rput(800,100){\Rnode{CapLR}{(xPicMax, yPicMin)}}
+ \ncline{->}{CapLR}{PicLR}
+ \rput(800,800){\Rnode{CapUR}{(xPicMax, yPicMax)}}
+ \ncline{->}{CapUR}{PicUR}
+ \rput(200,800){\Rnode{CapUL}{(xPicMin, yPicMax)}}
+ \ncline{->}{CapUL}{PicUL}
+
+ \pnode(400,400){PlotLL}
+ \pnode(600,400){PlotLR}
+ \pnode(600,600){PlotUR}
+ \pnode(400,600){PlotUL}
+ \rput(350,300){\Rnode{PCapLL}{(xCoordMin, yCoordMin)}}
+ \ncline{->}{PCapLL}{PlotLL}
+ \rput(800,450){\Rnode{PCapLR}{(xCoordMax, yCoordMin)}}
+ \ncline{->}{PCapLR}{PlotLR}
+ \rput(800,650){\Rnode{PCapUR}{(xCoordMax, yCoordMax)}}
+ \ncline{->}{PCapUR}{PlotUR}
+ \rput(500,870){\Rnode{PCapUL}{(xCoordMin, yCoordMax)}}
+ \ncline{->}{PCapUL}{PlotUL}
+
+ \rput(210,350){\pnode{LLXA}}
+ \rput(300,350){\pnode{LLXB}}
+ \ncline{<->}{LLXA}{LLXB}
+ \naput{llx}
+
+ \rput(350,200){\pnode{LLXA}}
+ \rput(350,0){\pnode{LLXB}}
+ \ncline{<->}{LLXA}{LLXB}
+ \naput{lly}
+
+ \rput(755,350){\pnode{URXA}}
+ \rput(700,350){\pnode{URXB}}
+ \ncline{<->}{URXA}{URXB}
+ \naput{urx}
+
+ \rput(350,805){\pnode{URXA}}
+ \rput(350,700){\pnode{URXB}}
+ \ncline{<->}{URXA}{URXB}
+ \naput{ury}
+
+
+ \setxAxis
+ {xCoordMin=400, xCoordMax=600,
+ xMin=1, xMax=1.6, Dx=0.2}
+ \setyAxis
+ {yCoordMin=400, yCoordMax=600,
+ yMin=50, yMax=150, Dy=25}
+
+ \plotxAxis[NoLabel]{}
+ \plotyAxis[NoLabel]{}
+
+ \listplot[style=StdLineStyA]{\IdentI}
+ \end{NumericDataPlot}
+ }
+\end{center}
+
+% \define@cmdkeys[NumericDataPlot]{General}[NumDataPlotG]{
+% xPicMin, yPicMin, xPicMax, yPicMax
+% }
+%
+%
+% \define@key[NumericDataPlot]{General}{llx}[\StdLLX]{
+% \psset{llx=#1}
+% \addtolength{\OffsetWidth}{\StdLLX}
+% \addtolength{\OffsetWidth}{-#1}
+% }
+% \define@key[NumericDataPlot]{General}{urx}[\StdURX]{
+% \psset{urx=#1}
+% \addtolength{\OffsetWidth}{-\StdURX}
+% \addtolength{\OffsetWidth}{#1}
+% }
+% \define@key[NumericDataPlot]{General}{lly}[\StdLLY]{\psset{lly=#1}}
+% \define@key[NumericDataPlot]{General}{ury}[\StdURY]{\psset{ury=#1}} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/numericplots/TestPlots.tex b/Master/texmf-dist/doc/latex/numericplots/TestPlots.tex
new file mode 100644
index 00000000000..16093086804
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/TestPlots.tex
@@ -0,0 +1,122 @@
+% Copyright 2010 Thomas König, Alexander Michel
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+\section{Some test plots}
+
+ \begin{figure}
+ \centering
+ \small
+
+ \input{DataTestRealData}
+ \newpsstyle{Database}{style=StdLineStyA, dotstyle=*, showpoints=true}
+ \newpsstyle{Result}{style=StdLineStyB, dotstyle=+, showpoints=true}
+
+ % adjust llx, lly, urx and ury for borders
+ \begin{NumericDataPlot}[]{0.5 \linewidth}{0.35 \linewidth}
+ % --- definition of the axis and the grid ---
+ \setxAxis{xMin=2, xMax=17, xO=5, Dx=4}
+
+ \setyAxis{yMin=20, yMax=70, yO=20, Dy=20}
+
+ % AxisStyle: Boxed,LowerAxis,UpperAxis,NoTicks,NoTickLabel,NoGrid
+ \plotxAxis[AxisStyle = Boxed]{Stichnummer}
+
+ % AxisStyle: Boxed,LeftAxis,RightAxis,NoTicks,NoTickLabel,NoGrid
+ \plotyAxis[AxisStyle = Boxed]{$F_{roll}$ in $\mega\newton$}
+
+
+ \listplot[style=Database]{\DataDBforce}
+ \listplot[style=Result]{\DataRESforce}
+ \listplot[style=StdLineStyC]{\DataDBforceC}
+ \listplot[style=StdLineStyD]{\DataDBforceD}
+ \listplot[style=StdLineStyE]{\DataDBforceE}
+ \listplot[style=StdLineStyF]{\DataDBforceF}
+ \listplot[style=StdLineStyG]{\DataDBforceG}
+ \end{NumericDataPlot}
+ \LegendDefinition[nrCols=1, LabelOrientation=r]{
+ \LegLine{style=Database} & Werte aus der Datenbank \\
+ \LegLine{style=Result} & Modell\\ }
+ \caption{Test.}
+ \label{fig:Test1}
+\end{figure}
+
+\clearpage
+
+% \section{Teste tkPlotData }
+%
+%
+%
+% {
+% \centering
+% \small
+%
+% \input{DataTestRealData}
+% \newpsstyle{Database}{style=StdLineStyA, dotstyle=*, showpoints=true}
+% \newpsstyle{Result}{style=StdLineStyB, dotstyle=+, showpoints=true}
+%
+% % adjust llx, lly, urx and ury for borders
+% %\begin{tkDataPlot}[options]{width}{height}
+% \begin{NumericDataPlot}[]{\linewidth}{10cm}
+% % --- definition of the axis and the grid ---
+% \setxAxis{xMin=2, xMax=17, xO=10, Dx=3}
+% \setyAxis{yMin=20, yMax=70, Dy=10, yO=25}
+%
+%
+% \plotxAxis[LabelPos=0.75, LabelOption={\color{red}},
+% TickLabelOption={\color{red}}]{Stichnummer}
+% \plotyAxis[LabelOption={\LARGE}, TickLabelOption={\LARGE\color{green}}]
+% {$F_{roll}$ in $\mega\newton$\\\LARGE{}Zeilenumbruch}
+%
+% \listplot[style=Database]{\DataDBforce}
+% \listplot[style=Result]{\DataRESforce}
+% \listplot[style=StdLineStyC]{\DataDBforceC}
+% \listplot[style=StdLineStyD]{\DataDBforceD}
+% \listplot[style=StdLineStyE]{\DataDBforceE}
+% \listplot[style=StdLineStyF]{\DataDBforceF}
+% \listplot[style=StdLineStyG]{\DataDBforceG}
+%
+% % put some stuff somewhere
+% \NDPput[x=5, y=30]{xx}
+%
+% % or put nodes and draw lines between them
+% \NDPput[x=7, y=25]{\pnode{A}}
+% \NDPput[x=8, y=45]{\pnode{B}}
+% \ncline{A}{B}
+%
+% % horizontal or vertical lines
+% \NDPhline[style=StdLineStyF]{27}
+% \NDPvline[style=StdLineStyG]{14}
+%
+% \NDPput[x=10, y=45]{\cnode{0.25}{Test}}
+%
+% \NDPput[x=13, y=48.3]{
+% \rnode{TestOval}{\psovalbox[framesep=4mm]{\hspace{8mm}}}
+% }
+%
+% \end{NumericDataPlot}
+% Vielleicht will ich genau \rnode{TestA}{hier} etwas zeigen. Oder genau
+% \rnode{TestOvalA}{hier?}
+% \ncline{->}{TestA}{Test}
+% \ncline{->}{TestOvalA}{TestOval}
+%
+% \LegendDefinition[nrCols=2]{
+% \LegLine{style=Database} & Werte aus der Datenbank &
+% \LegLine{style=Result} & Modell\\
+% }
+%
+%
+% } \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/numericplots/history.tex b/Master/texmf-dist/doc/latex/numericplots/history.tex
new file mode 100644
index 00000000000..971496d74ea
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/history.tex
@@ -0,0 +1,62 @@
+% Copyright 2010 Thomas König, Alexander Michel
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+\part{Version}
+
+\section{History}
+
+\begin{itemize}
+ \item 18.05.2010
+ \begin{itemize}
+ \item added LabelOption to plotAxis
+ \item added TickLabelOption to plotAxis
+ \item added possibility to change StdLabelOption
+ \item added possibility to change StdTickLabelOption
+ \end{itemize}
+ \item 11.06.2010
+ \begin{itemize}
+ \item expanded documentation
+ \item changed the command \texttt{LegLine}.
+ \item added the commands \texttt{plotxGrid} and \texttt{plotyGrid}. The
+ grids may now be plotted before the axis to avoid overlapping of the grid
+ and the axis.
+ \end{itemize}
+ \item 17.06.2010
+ \begin{itemize}
+ \item changed export2latex: check for the necessary precision before
+ exporting the data
+ \end{itemize}
+ \item 21.06.2010
+ \begin{itemize}
+ \item added option for logarithmic axes
+ \end{itemize}
+ \item 05.07.2010
+ \begin{itemize}
+ \item added command NDPline
+ \item added instructions to fill areas between plots to documentation
+ \end{itemize}
+ \item 03.08.2010
+ \begin{itemize}
+ \item added options to \texttt{export2latex.m}
+ \end{itemize}
+ \item 05.08.2010
+ \begin{itemize}
+ \item new calculation of tick lengths
+ \item length of the ticks may now be given in mm, see
+ \ref{sec:OptionsGeneral}
+ \end{itemize}
+\end{itemize} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/numericplots/options.tex b/Master/texmf-dist/doc/latex/numericplots/options.tex
new file mode 100644
index 00000000000..a37da9848f9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/numericplots/options.tex
@@ -0,0 +1,28 @@
+% Copyright 2010 Thomas König, Alexander Michel
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+\section{Options}
+
+\subsection{General}\label{sec:OptionsGeneral}
+
+ These are the options for the environment \texttt{NumericDataPlot}.
+
+ \begin{itemize}
+ \item xPicMin [0], yPicMin[0], xPicMax[1000], yPicMax[1000]
+ \item TickLength [2] defines the length of the ticks in mm
+ \item llx[-1.5cm], lly[-1.25cm], urx[2pt], ury[2pt]
+ \end{itemize} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/numericplots/NumericPlots.sty b/Master/texmf-dist/tex/latex/numericplots/NumericPlots.sty
new file mode 100644
index 00000000000..aa0cb63d572
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/numericplots/NumericPlots.sty
@@ -0,0 +1,1054 @@
+% Copyright 2010 Thomas König, Alexander Michel, Michael Baumgart
+%
+% This file is part of NumericPlots.
+%
+% NumericPlots 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 3 of the License, or
+% any later version.
+%
+% NumericPlots 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 NumericPlots. If not, see <http://www.gnu.org/licenses/>.
+
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesPackage{NumericPlots}[2010/08/09 LaTeX package to plot numeric data]
+
+% ==========================================================
+% || TODO
+% ||
+% || - implementation should be independant of psset
+% || - factor for x and y axis?
+% || - add option beamer (change default Sep/Sizes..)
+% || - change calculation of lengths (LabelSep) -> see TickLength
+
+
+
+\RequirePackage{calc}
+\RequirePackage{fp}
+
+\RequirePackage{ifthen}
+\RequirePackage{pstricks}
+\RequirePackage{pst-node}
+\RequirePackage{pst-plot}
+\RequirePackage{pstricks-add} % has to be the last of the pst-packages to be loaded!
+% the following seems not to work. xcolor must be included with x11names option!
+\RequirePackage{xcolor}
+
+
+% =======================================
+% === Definition of keys and commands ===
+% =======================================
+%
+% All the provided options (keys) are defined in the following section. Maybe it
+% is possible to store the values of the keys somehow. We then wouldn't have to
+% define all the new commands..
+
+\RequirePackage{xkeyval}
+
+% globally needed values as newcommands
+\newcommand{\NumDataPlotxRange}{1}
+\newcommand{\NumDataPlotxCoordRange}{1}
+\newcommand{\NumDataPlotxDataCoordRatio}{1}
+\newcommand{\NumDataPlotyRange}{1}
+\newcommand{\NumDataPlotyCoordRange}{1}
+\newcommand{\NumDataPlotyDataCoordRatio}{1}
+\newcommand{\NumDataPlotLnTen}{2.3025850929940}
+\newcommand{\NumDataPlotTickPos}{0}
+
+\newcommand{\xScaling}{}
+\newcommand{\yScaling}{}
+
+\newcommand{\NDPputXcoord}{0}
+\newcommand{\NDPputYcoord}{0}
+\newcommand{\NDPRefPoint}{c}
+
+\newcommand{\NumDataPlotBuffer}{0}
+\newcommand{\NumDataPlotBufferI}{0}
+\newcommand{\TicksXRight}{0}
+\newcommand{\TicksXLeft}{0}
+\newcommand{\TicksYRight}{0}
+\newcommand{\TicksYLeft}{0}
+\newcommand{\xTickLength}{-10}
+\newcommand{\yTickLength}{-10}
+
+\newcommand{\xNrTicks}{1}
+\newcommand{\yNrTicks}{1}
+
+\newboolean{PlotLeftAxis}
+\setboolean{PlotLeftAxis}{true}
+\newboolean{PlotRightAxis}
+\setboolean{PlotRightAxis}{true}
+
+\newboolean{PlotLowerAxis}
+\setboolean{PlotLowerAxis}{true}
+\newboolean{PlotUpperAxis}
+\setboolean{PlotUpperAxis}{true}
+
+\newcommand{\nrLegendCols}{1}
+\newcommand{\StdLabelOption}{{}}
+\newcommand{\StdTickLabelOption}{{}}
+\newlength{\LegLineWidth}\setlength{\LegLineWidth}{20pt}
+
+\newboolean{LegendOrientationLeft}
+\newboolean{LegendOrientationRight}
+\newboolean{LegendOrientationCenter}
+\setboolean{LegendOrientationLeft}{true}
+\setboolean{LegendOrientationRight}{false}
+\setboolean{LegendOrientationCenter}{false}
+
+
+\newcommand{\LogxAxis}{}
+\newcommand{\LogxAxisLabel}[1]{#1}
+\newcommand{\LogyAxis}{}
+\newcommand{\LogyAxisLabel}[1]{#1}
+
+\newcounter{BufferCounter}
+% ----------------------------------------------------------------------------
+% | define keys for the axis style etc.
+% ----------------------------------------------------------------------------
+
+% define some command keys
+% the command keys only save the provided value in \NumDataPlot<key> for later
+% use. The standard values for the command keys are set at the end of the
+% package.
+
+\define@cmdkeys[NumericDataPlot]{Axis}[NumDataPlot]
+ {xMax, xMin,
+ Dx,
+ dx, % so far, these are always calculated and cannot be set by user
+ xCoordMax, xCoordMin,
+ yMax, yMin,
+ Dy,
+ dy, % so far, these are always calculated and cannot be set by user
+ yCoordMax, yCoordMin
+ }
+
+\define@cmdkeys[NumericDataPlot]{xAxis}[NumDataPlotx]{
+ LabelRotation, LabelPos, TickSep, LabelOption, TickLabelOption
+ }
+\define@cmdkeys[NumericDataPlot]{yAxis}[NumDataPloty]{
+ LabelRotation, LabelPos, TickSep, LabelOption, TickLabelOption
+ }
+
+\define@boolkey[NumericDataPlot]{Axis}{xLog}[true]{
+ \ifNumericDataPlot@Axis@xLog
+ \renewcommand{\LogxAxis}{log}
+ \renewcommand{\LogxAxisLabel}[1]{10^{##1}}
+ \else
+ \renewcommand{\LogxAxis}{}
+ \renewcommand{\LogxAxisLabel}[1]{##1}
+ \fi
+}
+
+\define@boolkey[NumericDataPlot]{Axis}{yLog}[true]{
+ \ifNumericDataPlot@Axis@yLog
+ \renewcommand{\LogyAxis}{log}
+ \renewcommand{\LogyAxisLabel}[1]{10^{##1}}
+ \else
+ \renewcommand{\LogyAxis}{}
+ \renewcommand{\LogyAxisLabel}[1]{##1}
+ \fi
+}
+
+% xMin and yMin also set xO/yO. It will later be ensured that if the user
+% provides a value for xO/yO, these values will be used! (in order to do so, it
+% is always necessary to call the following two commands in the given order:
+% \setkeys[NumericDataPlot]{Axis}{<list of keys>}
+% \setrmkeys[NumericDataPlot]{AxisWait}
+% where <list of keys> can contain all the keys from Axis and from AxisWait)
+\define@cmdkeys[NumericDataPlot]{AxisWait}[NumDataPlot]{xO, yO}{}
+
+\define@boolkeys[NumericDataPlot]{xAxis}
+ {NoGrid, NoTicks, NoLabel, NoTickLabel}[true]
+
+\define@boolkeys[NumericDataPlot]{yAxis}
+ {NoGrid, NoTicks, NoLabel, NoTickLabel}[true]
+
+\define@key[NumericDataPlot]{yAxis}{yLabelSep}[\origXLabelSep]{\setlength{\yLabelSep}{#1}}
+\define@key[NumericDataPlot]{xAxis}{xLabelSep}[\origYLabelSep]{\setlength{\xLabelSep}{#1}}
+
+\define@choicekey+[NumericDataPlot]{xAxis}{AxisStyle}[\val\nrAxisStyle]
+{Boxed,Lower,Upper,None}{
+ \ifcase\nrAxisStyle\relax
+ \setboolean{PlotLowerAxis}{true}
+ \setboolean{PlotUpperAxis}{true}
+ \or
+ \setboolean{PlotLowerAxis}{true}
+ \setboolean{PlotUpperAxis}{false}
+ \or
+ \setboolean{PlotLowerAxis}{false}
+ \setboolean{PlotUpperAxis}{true}
+ \or
+ \setboolean{PlotLowerAxis}{false}
+ \setboolean{PlotUpperAxis}{false}
+ \fi
+}{
+ \PackageWarning{NumericPlots}
+ {AxisStyle #1 not defined. Use Boxed, Lower, Upper or None}
+}
+
+\define@choicekey+[NumericDataPlot]{yAxis}{AxisStyle}[\val\nrAxisStyle]
+{Boxed,Right,Left,None}{
+ \ifcase\nrAxisStyle\relax
+ \setboolean{PlotRightAxis}{true}
+ \setboolean{PlotLeftAxis}{true}
+ \or
+ \setboolean{PlotRightAxis}{true}
+ \setboolean{PlotLeftAxis}{false}
+ \or
+ \setboolean{PlotRightAxis}{false}
+ \setboolean{PlotLeftAxis}{true}
+ \or
+ \setboolean{PlotRightAxis}{false}
+ \setboolean{PlotLeftAxis}{false}
+ \fi
+}{
+ \PackageWarning{NumericPlots}
+ {AxisStyle #1 not defined. Use Boxed, Right, Left or None}
+}
+
+
+% ----------------------------------------------------------------------------
+% | general keys
+% |
+% | picture width etc.
+% ----------------------------------------------------------------------------
+
+\define@cmdkeys[NumericDataPlot]{General}[NumDataPlotG]{
+ xPicMin, yPicMin, xPicMax, yPicMax,
+ TickLength
+}
+
+
+\define@key[NumericDataPlot]{General}{llx}[\StdLLX]{
+ \psset{llx=-#1}
+ \addtolength{\OffsetWidth}{\StdLLX}
+ \addtolength{\OffsetWidth}{-#1}
+}
+\define@key[NumericDataPlot]{General}{urx}[\StdURX]{
+ \psset{urx=#1}
+ \addtolength{\OffsetWidth}{-\StdURX}
+ \addtolength{\OffsetWidth}{#1}
+}
+\define@key[NumericDataPlot]{General}{lly}[\StdLLY]{\psset{lly=#1}}
+\define@key[NumericDataPlot]{General}{ury}[\StdURY]{\psset{ury=#1}}
+
+
+% ----------------------------------------------------------------------------
+% | keys for the legend
+% ----------------------------------------------------------------------------
+
+\define@key[NumericDataPlot]{Legend}{nrCols}[1]{\renewcommand{\nrLegendCols}{#1}}
+\define@key[NumericDataPlot]{Legend}{LegLineWidth}[20pt]{\setlength{\LegLineWidth}{#1}}
+
+\define@choicekey+[NumericDataPlot]{Legend}{LabelOrientation}[\val\nrLegOrient]
+{r,l,c}{
+ \ifcase\nrLegOrient\relax
+ \setboolean{LegendOrientationLeft}{false}
+ \setboolean{LegendOrientationRight}{true}
+ \setboolean{LegendOrientationCenter}{false}
+ \or
+ \setboolean{LegendOrientationLeft}{true}
+ \setboolean{LegendOrientationRight}{false}
+ \setboolean{LegendOrientationCenter}{false}
+ \or
+ \setboolean{LegendOrientationLeft}{false}
+ \setboolean{LegendOrientationRight}{false}
+ \setboolean{LegendOrientationCenter}{true}
+ \fi
+}{
+ \PackageWarning{NumericPlots}{LabelOrientation #1 not defined. Use r, l or c}
+}
+
+\define@key[NumericDataPlot]{put}{x}{
+ \FPsub{\NumDataPlotBuffer}{#1}{\NumDataPlotxMin}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotxDataCoordRatio}
+ \FPadd{\NDPputXcoord}{\NumDataPlotBuffer}{\NumDataPlotxCoordMin}
+}
+\define@key[NumericDataPlot]{put}{y}{
+ \FPsub{\NumDataPlotBuffer}{#1}{\NumDataPlotyMin}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotyDataCoordRatio}
+ \FPadd{\NDPputYcoord}{\NumDataPlotBuffer}{\NumDataPlotyCoordMin}
+}
+\define@key[NumericDataPlot]{put}{RefPoint}[c]{
+ \renewcommand{\NDPRefPoint}{#1}
+}
+
+%-------------------------------------------------------------------------------
+
+
+\newlength{\picwidth}
+\newlength{\CPicWidth}
+\newlength{\StdLLX}\setlength{\StdLLX}{-1.5cm}
+\newlength{\StdLLY}\setlength{\StdLLY}{-1.25cm}
+\newlength{\StdURX}\setlength{\StdURX}{2pt}
+\newlength{\StdURY}\setlength{\StdURY}{2pt}
+\newlength{\OffsetWidth}
+
+
+\newlength{\origXLabelSep}\setlength{\origXLabelSep}{10pt}
+\newlength{\origYLabelSep}\setlength{\origYLabelSep}{20pt}
+\newlength{\xLabelSep}\setlength{\xLabelSep}{\origXLabelSep}
+\newlength{\yLabelSep}\setlength{\yLabelSep}{\origYLabelSep}
+
+% ==============================================================================
+% ||
+% || legend
+% ||
+% ==============================================================================
+
+
+\newcommand{\LegLineOld}[2][]{%
+ \setkeys[NumericDataPlot]{Legend}{#1}
+ %
+ \centering\Rnode{lab#2}{}%
+ \psline[style=#2,showpoints=false]([nodesep=0.5\LegLineWidth]lab#2)([nodesep=-0.5\LegLineWidth]lab#2)%
+ \psline[style=#2](lab#2)(lab#2)%
+}
+
+\newcommand{\LegLine}[2][]{%
+ \setkeys[NumericDataPlot]{Legend}{#1}
+ %
+ \centering\Rnode{LegLineNode}{}%
+ \psline[#2,showpoints=false]([nodesep=0.5\LegLineWidth]LegLineNode)([nodesep=-0.5\LegLineWidth]LegLineNode)%
+ \psline[#2](LegLineNode)(LegLineNode)%
+}
+
+
+\newcommand{\LegendDefinition}[2][nrCols]{%
+ \setkeys[NumericDataPlot]{Legend}{#1}%
+ %
+ \psframebox[fillcolor=white, fillstyle=solid]{%
+ \ifLegendOrientationLeft
+ \begin{tabular}{*{\nrLegendCols}{p{\LegLineWidth}l}}%
+ #2%
+ \end{tabular}%
+ \fi
+ \ifLegendOrientationCenter
+ \begin{tabular}{*{\nrLegendCols}{p{\LegLineWidth}c}}
+ #2
+ \end{tabular}
+ \fi
+ \ifLegendOrientationRight
+ \begin{tabular}{*{\nrLegendCols}{p{\LegLineWidth}r}}
+ #2
+ \end{tabular}
+ \fi
+ }%psframebox
+}
+
+% ==============================================================================
+% ||
+% || axis labels
+% ||
+% ==============================================================================
+
+
+\newcommand{\LeftyLabel}[1]{
+ \rput[b]
+ {!90 \NumDataPlotyLabelRotation\space add}
+ (!\NumDataPlotxCoordMin\space
+ \NumDataPlotyCoordRange\space \NumDataPlotyLabelPos\space mul
+ \NumDataPlotyCoordMin\space add){
+ \begin{tabular}{c}
+ \NumDataPlotyLabelOption{}#1\\
+ \vspace{\yLabelSep}
+ \end{tabular}}
+ \setlength{\yLabelSep}{\origYLabelSep}
+}
+
+\newcommand{\RightyLabel}[1]{
+ \rput[b]
+ {!270 \NumDataPlotyLabelRotation\space add}
+ (!\NumDataPlotxCoordMax\space
+ \NumDataPlotyCoordRange\space \NumDataPlotyLabelPos\space mul
+ \NumDataPlotyCoordMin\space add){
+ \begin{tabular}{c}
+ \NumDataPlotyLabelOption{}#1\\
+ \vspace{\yLabelSep}
+ \end{tabular}}
+ \setlength{\yLabelSep}{\origYLabelSep}
+}
+
+\newcommand{\UpperxLabel}[1]{
+ \rput[b]{!0 \NumDataPlotxLabelRotation\space add}
+ (!\NumDataPlotxCoordRange\space \NumDataPlotxLabelPos\space mul
+ \NumDataPlotxCoordMin\space add \NumDataPlotyCoordMax){
+ \begin{tabular}{c}
+ \NumDataPlotxLabelOption{}#1\\
+ \vspace{\xLabelSep}
+ \end{tabular}}
+ \setlength{\xLabelSep}{\origXLabelSep}
+}
+
+\newcommand{\LowerxLabel}[1]{
+ \rput[t]{!0 \NumDataPlotxLabelRotation\space add}
+ (!\NumDataPlotxCoordRange\space \NumDataPlotxLabelPos\space mul
+ \NumDataPlotxCoordMin\space add \NumDataPlotyCoordMin){
+ \begin{tabular}{c}
+ \vspace{\xLabelSep}\\
+ \NumDataPlotxLabelOption{}#1
+ \end{tabular}}
+ \setlength{\xLabelSep}{\origXLabelSep}
+}
+% ==============================================================================
+% ||
+% || Axis (Scaling)
+% ||
+% ==============================================================================
+
+\newcommand{\ScaleAxes}{
+ % calculate scaling:
+ % (<x> - xMin) * xDataCoordRatio + xCoordMin
+ % (<y> - yMin) * yDataCoordRatio + yCoordMin
+ % DataCoordRatio = (CoordMax-CoordMin)/(Max-Min)
+ % for logarithmic axes:
+ % (log(<x>) - log(xMin)) * xDataCoordRatio + xCoordMin
+ % (log(<y>) - log(yMin)) * yDataCoordRatio + yCoordMin
+ % DataCoordRatio = (CoordMax-CoordMin)/(log(Max)-log(Min))
+ \renewcommand{\xScaling}{\LogxAxis\space \NumDataPlotxMin\space sub
+ \NumDataPlotxDataCoordRatio\space mul \NumDataPlotxCoordMin\space add}
+ \renewcommand{\yScaling}{\LogyAxis\space \NumDataPlotyMin\space sub
+ \NumDataPlotyDataCoordRatio\space mul \NumDataPlotyCoordMin\space add}
+ \pstScalePoints(1.0, 1.0){\xScaling}{\yScaling}
+}
+
+% ==============================================================================
+% ||
+% || x-Axis
+% ||
+% ==============================================================================
+
+\newcommand{\setxAxis}[1]{
+ % set the keys. xO and yO have to be set after xMin and yMin have been set!
+ % (xMin and yMin also set xO and yO but when xO and yO are set by the user,
+ % these values should be overwritten.)
+ \setkeys*[NumericDataPlot]{Axis}
+ [yO, yMin, yMax, Dy, dy, yCoordMin, yCoordMax, yLog]{#1}
+ \setrmkeys[NumericDataPlot]{AxisWait}[yO]
+
+ % for logarithmic axes: calculate log(xMax), log(xMin), Dx=1, xO=ceil(xMin)
+ \ifNumericDataPlot@Axis@xLog
+ \FPln{\NumDataPlotBuffer}{\NumDataPlotxMax}
+ \FPdiv{\NumDataPlotxMax}{\NumDataPlotBuffer}{\NumDataPlotLnTen}
+ \FPround{\NumDataPlotxMax}{\NumDataPlotxMax}{3}
+ \FPln{\NumDataPlotBuffer}{\NumDataPlotxMin}
+ \FPdiv{\NumDataPlotxMin}{\NumDataPlotBuffer}{\NumDataPlotLnTen}
+ \FPround{\NumDataPlotxMin}{\NumDataPlotxMin}{3}
+ \renewcommand{\NumDataPlotDx}{1}
+ \FPadd{\NumDataPlotBuffer}{\NumDataPlotxMin}{0.5}
+ \FPtrunc{\NumDataPlotxO}{\NumDataPlotBuffer}{0}
+ \fi
+
+ \FPsub{\NumDataPlotxRange}{\NumDataPlotxMax}{\NumDataPlotxMin}
+ \FPsub{\NumDataPlotxCoordRange}{\NumDataPlotxCoordMax}{\NumDataPlotxCoordMin}
+ \FPdiv{\NumDataPlotxDataCoordRatio}{\NumDataPlotxCoordRange}{\NumDataPlotxRange}
+
+ % calculate number of ticks
+ \FPdiv{\xNrTicks}{\NumDataPlotxRange}{\NumDataPlotDx}
+ \FPtrunc{\xNrTicks}{\xNrTicks}{0}
+
+ % calculate dx
+ \FPmul{\NumDataPlotdx}{\NumDataPlotxDataCoordRatio}{\NumDataPlotDx}
+ \FPround{\NumDataPlotdx}{\NumDataPlotdx}{2}
+
+ % calculate coordinates of x origin
+ \FPsub{\NumDataPlotBuffer}{\NumDataPlotxO}{\NumDataPlotxMin}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotxDataCoordRatio}{\NumDataPlotBuffer}
+ \FPadd{\xCoordOrig}{\NumDataPlotBuffer}{\NumDataPlotxCoordMin}
+ \FPround{\xCoordOrig}{\xCoordOrig}{2}
+
+ % calculate number of ticks on right side of the origin
+ \FPsub{\TicksXRight}{\NumDataPlotxMax}{\NumDataPlotxO}
+ \FPdiv{\TicksXRight}{\TicksXRight}{\NumDataPlotDx}
+ \FPtrunc{\TicksXRight}{\TicksXRight}{0}
+
+ % calculate number of ticks on left side of the origin (number is negative!)
+ \FPsub{\TicksXLeft}{\NumDataPlotxMin}{\NumDataPlotxO}
+ \FPdiv{\TicksXLeft}{\TicksXLeft}{\NumDataPlotDx}
+ \FPsub{\TicksXLeft}{\TicksXLeft}{1}
+ \FPtrunc{\TicksXLeft}{\TicksXLeft}{0}
+
+ \ScaleAxes{}
+}
+
+
+\newcommand{\plotxGridLine}[1]{
+ \FPsub{\NumDataPlotBuffer}{\NumDataPlotxCoordMax}{#1}
+ \FPsub{\NumDataPlotBufferI}{#1}{\NumDataPlotxCoordMin}
+ \FPmin{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotBufferI}
+% \FPifneg{\NumDataPlotBuffer}
+% \else
+ % plot grid line
+ \ifNumericDataPlot@xAxis@NoGrid
+ \else
+ \psline[style=GridSt](#1, \NumDataPlotyCoordMin)(#1, \NumDataPlotyCoordMax)
+ \fi
+ % plot tick for lower axis and upper axis - if desired
+ \ifNumericDataPlot@xAxis@NoTicks
+ \else
+ \ifthenelse{\boolean{PlotLowerAxis}}{
+ \psline[style=TickSt](#1, \NumDataPlotyCoordMin)
+ (!#1\space \NumDataPlotyCoordMin\space \xTickLength \space sub)
+ }{}
+ \ifthenelse{\boolean{PlotUpperAxis}}{
+ \psline[style=TickSt](#1, \NumDataPlotyCoordMax)
+ (!#1 \NumDataPlotyCoordMax\space \xTickLength \space add)
+ }{}
+ \fi
+% \fi
+}
+
+\newcommand{\plotxSubGridLine}[1]{
+ \FPsub{\NumDataPlotBuffer}{\NumDataPlotxCoordMax}{#1}
+ \FPsub{\NumDataPlotBufferI}{#1}{\NumDataPlotxCoordMin}
+ \FPmin{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotBufferI}
+ \FPifneg{\NumDataPlotBuffer}
+ \else
+ % plot grid line
+ \ifNumericDataPlot@xAxis@NoGrid
+ \else
+ \psline[style=GridSt](#1,\NumDataPlotyCoordMin)(#1,\NumDataPlotyCoordMax)
+ \fi
+ \fi
+}
+
+\newcommand{\plotxTickLabels}[3]{
+ \FPadd{\NumDataPlotBuffer}{\TicksXLeft}{1}
+ \FPround{\NumDataPlotBuffer}{\NumDataPlotBuffer}{0}
+
+ % plot ticks on right side of the origin
+ \mmultido{\n=\NumDataPlotxO+\NumDataPlotDx}{\TicksXRight}
+ {
+ \rput[#3]{0}(!\NumDataPlotdx \space \NumDataPlotDx \space div \n
+ \space \NumDataPlotxO \space sub mul \xCoordOrig \space add \space #1
+ \space \NumDataPlotxTickSep \space #2)
+ {\NumDataPlotxTickLabelOption{}$\LogxAxisLabel{\n}$}
+ }
+ % plot ticks on left side of the origin
+ \mmultido{\n=\NumDataPlotxO+\NumDataPlotDx}{\NumDataPlotBuffer}
+ {
+ \rput[#3]{0}(!\xCoordOrig \space \NumDataPlotdx \space
+ \NumDataPlotDx \space div \n \space \NumDataPlotxO \space sub mul add \space #1 \space \NumDataPlotxTickSep \space #2)
+ {\NumDataPlotxTickLabelOption{}$\LogxAxisLabel{\n}$}
+ }
+ % plot tick at origin
+ \rput[#3]{0}(!\xCoordOrig\space #1 \space
+ \NumDataPlotxTickSep\space #2)
+ {\NumDataPlotxTickLabelOption{}$\LogxAxisLabel{\NumDataPlotxO}$}
+}
+
+\newcommand{\xLogSubGrid}[1]{
+ \ifNumericDataPlot@Axis@xLog
+ \multido{\iSubb=2+2}{4}{
+ \FPln{\NumDataPlotBuffer}{\iSubb}
+ \FPdiv{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotLnTen}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotxDataCoordRatio}
+ \FPadd{\NumDataPlotTickPos}{#1}{\NumDataPlotBuffer}
+ \plotxSubGridLine{\NumDataPlotTickPos}
+ }
+ \fi
+}
+
+\newcommand{\plotxGrid}{
+ % plot gridline on right side of the origin
+ \mmultido{\n=\xCoordOrig+\NumDataPlotdx}{\TicksXRight}{
+ \plotxGridLine{\n}
+ \xLogSubGrid{\n}
+ }
+ % plot gridline on left side of the origin and at origin
+ \multido{\n=\xCoordOrig+\NumDataPlotdx}{\TicksXLeft}{
+ \plotxGridLine{\n}
+ }
+ \FPsub{\NumDataPlotBuffer}{\TicksXLeft}{1}
+ \FPround{\NumDataPlotBuffer}{\NumDataPlotBuffer}{0}
+ \multido{\n=\xCoordOrig+\NumDataPlotdx}{\NumDataPlotBuffer}{
+ \xLogSubGrid{\n}
+ }
+}
+
+\newcommand{\plotxAxis}[2][]{
+ \setkeys[NumericDataPlot]{xAxis}{#1}
+
+ % plot grid, ticks and ticklabels
+ \plotxGrid{}
+
+
+ % plot lower axis
+ \ifthenelse{\boolean{PlotLowerAxis}}
+ {
+ \psline(\NumDataPlotxCoordMin,\NumDataPlotyCoordMin)(\NumDataPlotxCoordMax, \NumDataPlotyCoordMin)
+ \ifNumericDataPlot@xAxis@NoTickLabel
+ \else
+ \plotxTickLabels{\NumDataPlotyCoordMin}{sub}{t}
+ \fi
+ % plot label
+ \ifNumericDataPlot@xAxis@NoLabel
+ \else
+ \LowerxLabel{#2}
+ \fi
+ %plot upper axis (boxed)
+ \ifthenelse{\boolean{PlotUpperAxis}}{
+ % plot upper axis
+ \psline(\NumDataPlotxCoordMin,\NumDataPlotyCoordMax)(\NumDataPlotxCoordMax, \NumDataPlotyCoordMax)
+ }{}
+ }{
+ % plot upper axis (only upper axis)
+ \ifthenelse{\boolean{PlotUpperAxis}}{
+ % plot upper axis
+ \psline(\NumDataPlotxCoordMin,\NumDataPlotyCoordMax)(\NumDataPlotxCoordMax, \NumDataPlotyCoordMax)
+ % plot ticklabels
+ \ifNumericDataPlot@xAxis@NoTickLabel
+ \else
+ \plotxTickLabels{\NumDataPlotyCoordMax}{add}{b}
+ \fi
+ % plot label
+ \ifNumericDataPlot@xAxis@NoLabel
+ \else
+ \UpperxLabel{#2}
+ \fi
+ }{}
+ }
+}
+
+\newcommand{\repeatxAxis}{\plotxAxis[NoLabel, NoTickLabel]{}}
+
+% ==============================================================================
+% ||
+% || y-Axis
+% ||
+% ==============================================================================
+
+\newcommand{\plotyTickLabels}[3]{
+ \FPadd{\NumDataPlotBuffer}{\TicksYLeft}{1}
+ \FPround{\NumDataPlotBuffer}{\NumDataPlotBuffer}{0}
+ % plot ticks on right side of the origin
+ \mmultido{\n=\NumDataPlotyO+\NumDataPlotDy}{\TicksYRight}
+ {
+ \rput[#3]{0}(!#1 \space \NumDataPlotyTickSep
+ \space #2 \space \NumDataPlotdy \space \NumDataPlotDy \space div \n \space \NumDataPlotyO \space sub mul \yCoordOrig \space add)
+ {\NumDataPlotyTickLabelOption{}$\LogyAxisLabel{\n}$}
+ }
+ % plot ticks on left side of the origin
+ \mmultido{\n=\NumDataPlotyO+\NumDataPlotDy}{\NumDataPlotBuffer}
+ {
+ \rput[#3]{0}(!#1 \space \NumDataPlotyTickSep
+ \space #2 \space \NumDataPlotdy \space \NumDataPlotDy \space div \n \space \NumDataPlotyO \space sub mul \yCoordOrig \space add)
+ {\NumDataPlotyTickLabelOption{}$\LogyAxisLabel{\n}$}
+ }
+ % plot tick at origin
+ \rput[#3]{0}(!#1 \space \NumDataPlotyTickSep\space #2 \space \yCoordOrig)
+ {\NumDataPlotyTickLabelOption{}$\LogyAxisLabel{\NumDataPlotyO}$}
+}
+
+\newcommand{\setyAxis}[1]{
+% values from the x-axis must be ignored! If they weren't, the default values
+ % would be set!
+ \setkeys*[NumericDataPlot]{Axis}
+ [xO, xMin, xMax, xCoordMin, xCoordMax, Dx, dx, xLog]{#1}
+ \setrmkeys[NumericDataPlot]{AxisWait}[xO]
+
+ % for logarithmic axes: calculate log(xMax), log(xMin), Dx=1, xO=ceil(xMin)
+ \ifNumericDataPlot@Axis@yLog
+ \FPln{\NumDataPlotBuffer}{\NumDataPlotyMax}
+ \FPdiv{\NumDataPlotyMax}{\NumDataPlotBuffer}{\NumDataPlotLnTen}
+ \FPround{\NumDataPlotyMax}{\NumDataPlotyMax}{6}
+ \FPln{\NumDataPlotBuffer}{\NumDataPlotyMin}
+ \FPdiv{\NumDataPlotyMin}{\NumDataPlotBuffer}{\NumDataPlotLnTen}
+ \FPround{\NumDataPlotyMin}{\NumDataPlotyMin}{6}
+ \renewcommand{\NumDataPlotDy}{1}
+ \FPadd{\NumDataPlotBuffer}{\NumDataPlotyMin}{0.5}
+ \FPtrunc{\NumDataPlotyO}{\NumDataPlotBuffer}{0}
+ \fi
+
+ \FPsub{\NumDataPlotyRange}{\NumDataPlotyMax}{\NumDataPlotyMin}
+ \FPsub{\NumDataPlotyCoordRange}{\NumDataPlotyCoordMax}{\NumDataPlotyCoordMin}
+ \FPdiv{\NumDataPlotyDataCoordRatio}{\NumDataPlotyCoordRange}{\NumDataPlotyRange}
+
+ % calculate number of ticks
+ \FPdiv{\yNrTicks}{\NumDataPlotyRange}{\NumDataPlotDy}
+ \FPtrunc{\yNrTicks}{\yNrTicks}{0}
+
+ % calculate dy
+ \FPmul{\NumDataPlotdy}{\NumDataPlotyDataCoordRatio}{\NumDataPlotDy}
+ \FPround{\NumDataPlotdy}{\NumDataPlotdy}{2}
+
+ % calculate coordinates of y origin
+ \FPsub{\NumDataPlotBuffer}{\NumDataPlotyO}{\NumDataPlotyMin}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotyDataCoordRatio}{\NumDataPlotBuffer}
+ \FPadd{\yCoordOrig}{\NumDataPlotBuffer}{\NumDataPlotyCoordMin}
+ \FPround{\yCoordOrig}{\yCoordOrig}{2}
+
+ % calculate number of ticks on right side of the origin
+ \FPsub{\TicksYRight}{\NumDataPlotyMax}{\NumDataPlotyO}
+ \FPdiv{\TicksYRight}{\TicksYRight}{\NumDataPlotDy}
+ \FPtrunc{\TicksYRight}{\TicksYRight}{0}
+
+ % calculate number of ticks on left side of the origin (number is negative!)
+ \FPsub{\TicksYLeft}{\NumDataPlotyMin}{\NumDataPlotyO}
+ \FPdiv{\TicksYLeft}{\TicksYLeft}{\NumDataPlotDy}
+ \FPsub{\TicksYLeft}{\TicksYLeft}{1}
+ \FPtrunc{\TicksYLeft}{\TicksYLeft}{0}
+
+ % --- scaling ---
+ \ScaleAxes{}
+}
+
+
+\newcommand{\plotyGridLine}[1]{
+ \FPsub{\NumDataPlotBuffer}{\NumDataPlotyCoordMax}{#1}
+ \FPsub{\NumDataPlotBufferI}{#1}{\NumDataPlotyCoordMin}
+ \FPmin{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotBufferI}
+ \FPifpos{\NumDataPlotBuffer}
+ % plot grid line
+ \ifNumericDataPlot@yAxis@NoGrid
+ \else
+ \psline[style=GridSt](\NumDataPlotxCoordMin, #1)(\NumDataPlotxCoordMax, #1)
+ \fi
+ % plot tick for lower axis and upper axis - if desired
+ \ifNumericDataPlot@yAxis@NoTicks
+ \else
+ \ifthenelse{\boolean{PlotLeftAxis}}{
+ \psline[style=TickSt](\NumDataPlotxCoordMin, #1)
+ (!\NumDataPlotxCoordMin\space \yTickLength \space sub #1)
+ }{}
+ \ifthenelse{\boolean{PlotRightAxis}}{
+ \psline[style=TickSt](\NumDataPlotxCoordMax, #1)
+ (!\NumDataPlotxCoordMax\space \yTickLength \space add #1)
+ }{}
+ \fi
+ \fi
+}
+
+\newcommand{\plotySubGridLine}[1]{
+ \FPsub{\NumDataPlotBuffer}{\NumDataPlotyCoordMax}{#1}
+ \FPsub{\NumDataPlotBufferI}{#1}{\NumDataPlotyCoordMin}
+ \FPmin{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotBufferI}
+ \FPifpos{\NumDataPlotBuffer}
+ % plot grid line
+ \ifNumericDataPlot@yAxis@NoGrid
+ \else
+ \psline[style=GridSt](\NumDataPlotxCoordMin, #1)(\NumDataPlotxCoordMax, #1)
+ \fi
+ \fi
+}
+
+
+
+\newcommand{\yLogSubGrid}[1]{
+ \ifNumericDataPlot@Axis@yLog
+ \multido{\iSubb=2+2}{4}{
+ \FPln{\NumDataPlotBuffer}{\iSubb}
+ \FPdiv{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotLnTen}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotyDataCoordRatio}
+ \FPadd{\NumDataPlotTickPos}{#1}{\NumDataPlotBuffer}
+ \plotySubGridLine{\NumDataPlotTickPos}
+ }
+ \fi
+}
+
+\newcommand{\plotyGrid}{
+ % plot gridline on right side of the origin
+ \mmultido{\n=\yCoordOrig+\NumDataPlotdy}{\TicksYRight}{
+ \plotyGridLine{\n}
+ \yLogSubGrid{\n}
+ }
+ % plot gridline on left side of the origin
+ \multido{\n=\yCoordOrig+\NumDataPlotdy}{\TicksYLeft}{
+ \plotyGridLine{\n}
+ }
+ \FPsub{\NumDataPlotBuffer}{\TicksYLeft}{1}
+ \FPround{\NumDataPlotBuffer}{\NumDataPlotBuffer}{0}
+ \multido{\n=\yCoordOrig+\NumDataPlotdy}{\NumDataPlotBuffer}{
+ \yLogSubGrid{\n}
+ }
+% \putS{
+% TicksYLeft: \TicksYLeft
+% }
+}
+
+\newcommand{\plotyAxis}[2][]{
+ \setkeys[NumericDataPlot]{yAxis}{#1}
+
+ % plot grid
+ \plotyGrid
+
+ % plot lower axis
+ \ifthenelse{\boolean{PlotLeftAxis}}
+ {
+ \psline(\NumDataPlotxCoordMin,\NumDataPlotyCoordMin)(\NumDataPlotxCoordMin, \NumDataPlotyCoordMax)
+ \ifNumericDataPlot@yAxis@NoTickLabel
+ \else
+ \plotyTickLabels{\NumDataPlotxCoordMin}{sub}{r}
+ \fi
+ % plot upper axis
+ \ifthenelse{\boolean{PlotRightAxis}}
+ {
+ \psline(\NumDataPlotxCoordMax,\NumDataPlotyCoordMin)(\NumDataPlotxCoordMax, \NumDataPlotyCoordMax)
+ }{}
+ % --- label ---
+ \ifNumericDataPlot@yAxis@NoLabel
+ \else
+ \LeftyLabel{#2}
+ \fi
+ }{
+ \ifthenelse{\boolean{PlotRightAxis}}
+ {
+ \psline(\NumDataPlotxCoordMax,\NumDataPlotyCoordMin)(\NumDataPlotxCoordMax, \NumDataPlotyCoordMax)
+ \ifNumericDataPlot@yAxis@NoTickLabel
+ \else
+ \plotyTickLabels{\NumDataPlotxCoordMax}{add}{l}
+ \fi
+ % --- label ---
+ \ifNumericDataPlot@yAxis@NoLabel
+ \else
+ \RightyLabel{#2}
+ \fi
+ }{}
+ }
+}
+
+% ==============================================================================
+% ||
+% || commands...
+% ||
+% ==============================================================================
+
+\newcommand{\NDPput}[2][]{
+ \setkeys[NumericDataPlot]{put}{RefPoint=c}
+ \setkeys[NumericDataPlot]{put}{#1}
+ \rput[\NDPRefPoint](\NDPputXcoord, \NDPputYcoord){#2}
+}
+
+\newcommand{\NDPhline}[2][]{
+
+ \FPsub{\NumDataPlotBuffer}{#2}{\NumDataPlotyMin}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotyDataCoordRatio}
+ \FPadd{\NDPputYcoord}{\NumDataPlotBuffer}{\NumDataPlotyCoordMin}
+
+ \psline[#1](\NumDataPlotxCoordMin, \NDPputYcoord)
+ (\NumDataPlotxCoordMax, \NDPputYcoord)
+}
+
+\newcommand{\NDPvline}[2][]{
+
+ \FPsub{\NumDataPlotBuffer}{#2}{\NumDataPlotxMin}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotxDataCoordRatio}
+ \FPadd{\NDPputXcoord}{\NumDataPlotBuffer}{\NumDataPlotxCoordMin}
+
+ \psline[#1](\NDPputXcoord, \NumDataPlotyCoordMin)
+ (\NDPputXcoord, \NumDataPlotyCoordMax)
+}
+
+\newcommand{\NDPline}[5][]{
+
+ \FPsub{\NumDataPlotBuffer}{#2}{\NumDataPlotxMin}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotxDataCoordRatio}
+ \FPadd{\NDPputXcoordOne}{\NumDataPlotBuffer}{\NumDataPlotxCoordMin}
+
+ \FPsub{\NumDataPlotBuffer}{#2}{\NumDataPlotxMin}
+ \FPmul{\NumDataPlotBuffer}{\NumDataPlotBuffer}{\NumDataPlotxDataCoordRatio}
+ \FPadd{\NDPputXcoordOne}{\NumDataPlotBuffer}{\NumDataPlotxCoordMin}
+
+
+ \psline[#1]
+ (!#2 \NumDataPlotxMin\space sub \NumDataPlotxDataCoordRatio\space mul
+ \NumDataPlotxCoordMin\space add
+ #3 \NumDataPlotyMin\space sub \NumDataPlotyDataCoordRatio\space mul
+ \NumDataPlotyCoordMin\space add)
+ (!#4 \NumDataPlotxMin\space sub \NumDataPlotxDataCoordRatio\space mul
+ \NumDataPlotxCoordMin\space add
+ #5 \NumDataPlotyMin\space sub \NumDataPlotyDataCoordRatio\space mul
+ \NumDataPlotyCoordMin\space add)
+}
+
+% ==============================================================================
+% ||
+% || environment NumericDataPlot
+% ||
+% ==============================================================================
+
+
+\newenvironment{NumericDataPlot}[3][]{
+ %
+ \setlength{\OffsetWidth}{-\StdLLX +\StdURX}
+ % set standard values (they will be reset by setkeys if defined)
+ \psset{llx=\StdLLX, lly=\StdLLY, ury=\StdURY, urx=\StdURX}
+ %
+ \setkeys[NumericDataPlot]{General}{#1}
+ %
+ \setlength{\CPicWidth}{#2 - \OffsetWidth}
+ % calculate length of the yTicks:
+ % PicCoordWidth (=GxPicMax-GxPicMin) -> PicWidth (=#2)
+ % Length -> 1mm * yTickLength
+ % yTickLength must be negative
+ \setcounter{BufferCounter}{1*\ratio{#2}{1mm}}
+ \FPsub{\NumDataPlotBuffer}{\NumDataPlotGxPicMax}{\NumDataPlotGxPicMin}
+ \FPdiv{\NumDataPlotBufferI}{\NumDataPlotBuffer}{\theBufferCounter}
+ \FPmul{\yTickLength}{\NumDataPlotBufferI}{\NumDataPlotGTickLength}
+ \FPmul{\yTickLength}{\NumDataPlotBufferI}{-1}
+ % calculate length of the xTicks
+ \setcounter{BufferCounter}{1*\ratio{#3}{1mm}}
+ \FPsub{\NumDataPlotBuffer}{\NumDataPlotGyPicMax}{\NumDataPlotGyPicMin}
+ \FPdiv{\NumDataPlotBufferI}{\NumDataPlotBuffer}{\theBufferCounter}
+ \FPmul{\xTickLength}{\NumDataPlotBufferI}{\NumDataPlotGTickLength}
+ \FPmul{\xTickLength}{\NumDataPlotBufferI}{-1}
+
+ \FPdiv{\NumDataPlotxTickSep}{\NumDataPlotGxPicMax}{20}
+ \FPround{\NumDataPlotxTickSep}{\NumDataPlotxTickSep}{0}
+ \FPdiv{\NumDataPlotyTickSep}{\NumDataPlotGyPicMax}{20}
+ \FPround{\NumDataPlotyTickSep}{\NumDataPlotyTickSep}{0}
+% \FPdiv{\xTickLength}{\NumDataPlotGxPicMax}{-75}
+% \FPround{\xTickLength}{\xTickLength}{0}
+% \FPdiv{\yTickLength}{\NumDataPlotGyPicMax}{-75}
+% \FPround{\yTickLength}{\yTickLength}{0}
+ \begin{psgraph}[fillstyle=solid, fillcolor=gray,
+ xAxis=false, yAxis=false] (\NumDataPlotGxPicMin, \NumDataPlotGyPicMin)(\NumDataPlotGxPicMin, \NumDataPlotGyPicMin)(\NumDataPlotGxPicMax, \NumDataPlotGyPicMax)
+ {\CPicWidth}{#3}
+}{
+ \pstScalePoints(1.0, 1.0){0 add}{0 add}
+ \end{psgraph}
+}
+
+
+\psset{xunit=1mm, yunit=1mm, xAxisLabel={}, yAxisLabel={}}
+
+
+% ============================================================================
+% ||
+% || Definition of styles
+% ||
+% ============================================================================
+
+\newpsstyle{GridSt}{linecolor=gray, linestyle=dotted, linewidth=0.75pt}
+\newpsstyle{TickSt}{linecolor=black, linestyle=solid, linewidth=0.5pt}
+
+
+\definecolor{LineColorA}{cmyk}{1 0.25 0 0} %blue
+\definecolor{LineColorB}{cmyk}{1 0 1 0.2} %green
+\definecolor{LineColorC}{cmyk}{0 1 1 0.2} %red
+\definecolor{LineColorD}{cmyk}{0 0.7 1 0} % orange
+\definecolor{LineColorE}{cmyk}{0.7 1 0 0} % purple
+\definecolor{LineColorF}{cmyk}{1 0 0 0} % light blue
+\definecolor{LineColorG}{cmyk}{0 0.25 1 0} % yellow
+
+\newpsstyle{StdLineStyA}{linecolor=LineColorA}
+\newpsstyle{StdLineStyB}{linecolor=LineColorB}
+\newpsstyle{StdLineStyC}{linecolor=LineColorC}
+\newpsstyle{StdLineStyD}{linecolor=LineColorD}
+\newpsstyle{StdLineStyE}{linecolor=LineColorE}
+\newpsstyle{StdLineStyF}{linecolor=LineColorF}
+\newpsstyle{StdLineStyG}{linecolor=LineColorG}
+
+\DeclareOptionX{BW}{
+ \newpsstyle{StdLineStyA}
+ {linecolor=lightgray,linestyle=solid,linewidth = 1.5pt}
+ \newpsstyle{StdLineStyB}
+ {linecolor=gray,linestyle=solid,linewidth = 1.0pt}
+ \newpsstyle{StdLineStyC}
+ {linecolor=black,linestyle=solid,linewidth = 0.75pt}
+ \newpsstyle{StdLineStyD}
+ {linecolor=black,linestyle=dashed, dash = 3pt 2pt,linewidth = 0.75pt}
+ \newpsstyle{StdLineStyE}
+ {linecolor=gray,linestyle=dashed,dash = 3pt 2pt,linewidth = 1.0pt}
+ \newpsstyle{StdLineStyF}
+ {linecolor=black,linestyle=dotted, dotsep =2pt,linewidth = 1.5pt}
+ \newpsstyle{StdLineStyG}
+ {linecolor=gray,linestyle=dotted, dotsep =2pt,linewidth = 1.5pt}
+}
+
+\DeclareOptionX{beamer}{
+ \renewcommand{\StdLLY}{-1.0cm}
+ \renewcommand{\StdTickLabelOption}{\footnotesize}
+ \setlength{\origXLabelSep}{1pt}
+}
+\DeclareOptionX{xAxisStyle}[Boxed]{
+ \presetkeys[NumericDataPlot]{xAxis}{AxisStyle=#1}{}
+}
+\DeclareOptionX{yAxisStyle}[Boxed]{
+ \presetkeys[NumericDataPlot]{yAxis}{AxisStyle=#1}{}
+}
+\DeclareOptionX{LabelOption}[{}]{
+ \renewcommand{\StdLabelOption}{#1}
+}
+\DeclareOptionX{TickLabelOption}[{}]{
+ \renewcommand{\StdTickLabelOption}{#1}
+}
+\ProcessOptionsX
+
+% \ProcessOptions
+
+% ===========================================================================
+% ||
+% || set standard values for keys
+% ||
+% ===========================================================================
+\presetkeys[NumericDataPlot]{Axis}{
+ xMax=100, xMin=0, Dx=10,
+ xCoordMax=\NumDataPlotGxPicMax, xCoordMin=\NumDataPlotGxPicMin,
+ xLog=false,
+ yMax=100, yMin=0, Dy=10,
+ yCoordMax=\NumDataPlotGyPicMax, yCoordMin=\NumDataPlotGyPicMin,
+ yLog=false,
+ }{}
+\presetkeys[NumericDataPlot]{xAxis}{
+ NoGrid=false, NoTicks=false, NoLabel=false, NoTickLabel=false,
+ LabelRotation=0, LabelPos=0.5, TickSep=20, LabelOption=\StdLabelOption{},
+ TickLabelOption=\StdTickLabelOption{} }{}
+\presetkeys[NumericDataPlot]{yAxis}{
+ NoGrid=false, NoTicks=false, NoLabel=false, NoTickLabel=false,
+ LabelRotation=0, LabelPos=0.5, TickSep=20, LabelOption=\StdLabelOption{},
+ TickLabelOption=\StdTickLabelOption{} }{}
+
+% if xO/yO are not set they'll be set to xMin/yMin
+\presetkeys[NumericDataPlot]{AxisWait}{
+ xO=\NumDataPlotxMin, yO=\NumDataPlotyMin
+}{}
+
+\presetkeys[NumericDataPlot]{General}{
+ xPicMin=0, yPicMin=0, xPicMax=1000, yPicMax=1000, TickLength=2}{}
+
+\presetkeys[NumericDataPlot]{Legend}{
+ LabelOrientation=l
+}{}
+
+% ===========================================================================
+% ||
+% || commands to put something at a location of the plot
+% ||
+% ===========================================================================
+
+% put in the NorthWest corner of the plot
+\newcommand{\putNW}[1]{
+\rput[lt]{0}(\NumDataPlotxCoordMin, \NumDataPlotyCoordMax){#1}}
+% put in the SouthWest corner of the plot
+\newcommand{\putSW}[1]{
+\rput[lb]{0}(\NumDataPlotxCoordMin, \NumDataPlotyCoordMin){#1}}
+% put in the NorthEast corner of the plot
+\newcommand{\putNE}[1]{
+\rput[rt]{0}(\NumDataPlotxCoordMax, \NumDataPlotyCoordMax){#1}}
+% put in the SouthEast corner of the plot
+\newcommand{\putSE}[1]{
+\rput[rb]{0}(\NumDataPlotxCoordMax, \NumDataPlotyCoordMin){#1}}
+% put in the South of the plot
+\newcommand{\putS}[1]{
+\rput[b]{0}(!\NumDataPlotxCoordMax\space\NumDataPlotxMin\space sub 2 div
+\NumDataPlotxCoordMin\space add \NumDataPlotyCoordMin){#1}}
+% put in the North of the plot
+\newcommand{\putN}[1]{
+\rput[t]{0}(!\NumDataPlotxCoordMax\space\NumDataPlotxCoordMin\space sub 2 div
+\NumDataPlotxCoordMin\space add \NumDataPlotyCoordMax){#1}}
+% put in the West of the plot
+\newcommand{\putW}[1]{
+\rput[l]{0}(!\NumDataPlotxCoordMin\space
+\NumDataPlotyCoordMax\space\NumDataPlotyCoordMin\space sub 2 div \NumDataPlotyCoordMin\space add){#1}}
+% put in the East of the plot
+\newcommand{\putE}[1]{
+\rput[r]{0}(!\NumDataPlotxCoordMax\space
+\NumDataPlotyCoordMax\space\NumDataPlotyCoordMin\space sub 2 div \NumDataPlotyCoordMin\space add){#1}}