diff --git a/doc/Changes.tex b/doc/Changes.tex new file mode 100644 index 0000000000000000000000000000000000000000..c6c168d833862b842cc896d3c5058a5665eeeb46 --- /dev/null +++ b/doc/Changes.tex @@ -0,0 +1,43 @@ +\section{Changes} + +\index{Frida!history|(}% +\index{History of Frida|(}% +Development of Frida was started by J.~Wuttke in 1990. +\index{Wuttke, Joachim}% +Originally, the software was called IDA (``inelastic data analysis''). +\index{IDA}% +The code was written in Fortran77, +\index{Fortran}% +and depended on the proprietary NAG library for numerics, and on proprietary compilers. +It was freely given to interested scientist, +and some modules were contributed back. +When J.~Wuttke left the field in 2001, +maintenance of IDA was continued in the group of A.~Meyer at DLR Köln. +\index{Meyer, Andreas}% + +In 2001--2003, J.~Wuttke wrote a C$++$ program +\index{C$++$@C++}% +for the analysis of time series, +heavily drawing on concepts from IDA. +When he came back to neutron science in 2005, +he used this code as base for a modernized rewrite of IDA. +By then, publication of open-source software on the world wide web had become commonplace. +The akronym IDA, however, had already been taken by other software projects. +Therefore, J.~Wuttke renamed his project Frida (``Fast reliable interactive data analysis''). +\index{Frida!name}% +The Fortran code IDA became Frida1, +\index{Frida1}% +and the new C$++$ code was called Frida2. + +Since April 2008, +code changes are tracked in the version control system \texttt{git}, +\index{Version control}% +\index{git}% +currently located at \url{git://apps.jcns.fz-juelich.de/frida.git/}. +Since April 2010, +changes are described in the file \texttt{CHANGELOG}, +which is part of the source, +and also is available online at \url{http://apps.jcns.fz-juelich.de/src/frida/frida2-CHANGELOG}. + +\index{Frida!history|)}% +\index{History of Frida|)}% diff --git a/doc/DataModel.tex b/doc/DataModel.tex new file mode 100644 index 0000000000000000000000000000000000000000..66b9bdd0717a13bb8101e6afd9d67f2539ac40ed --- /dev/null +++ b/doc/DataModel.tex @@ -0,0 +1,31 @@ +\section{Data Model} + +Frida is basically a huge collection of methods that operate on files. +The structure of these files shall be designated as Frida's \E{data model}. +\index{Data model}% + +The data model is the most basic design feature of Frida. +Internal and external storage formats and all method interfaces depend on it. +It has evolved only little since the inception of Frida, +and changes always go towards greater genericity.\footnote +{Major changes were the addition of multi-$z$-coordinates in 1996, +the insertion of an abstraction layer for $x-y-dy$ in 2006, +and full support for $r$ pars in 2010.} +Therefore, Frida will always remain backward compatible +\index{Compatibility!data}% +in the sense +that older data can still be treated with newer software versions. + +Frida supports two types of files: \E{data files} and \E{curve files}. + +\subsection{Data files} + +A \E{data file} is basically an array of »spectra«. A \E{spectrum} contains $x,y$ data pairs (or $x,y,dy$ triples, if errors are given). The physical meaning of $x$ and $y$ is stored as »coordinate« information in the »meta data« of the file. A \E{coordinate} consists of »name« and »unit«, e.g. "mass (kg)" or "counts (Hz)". + +If a data file contains more than one spectrum, it is mandatory that there is a $z$ coordinate; there may be several (denoted $z0, z1, ...$). Each spectrum contains as many $z$ entries as there are $z$ coordinates. + +There are additional \E{file meta data}, like the »file name« and the »documentation« array. Furthermore, a file may contain an arbitrary number of »file constants«. An \E{file constant} is a coordinate-value pair, denoted $r0, r1, ...$. For instance, $r0$ may contain the coordinate "T (K)" and the value 320 to indicate a temperature of 320 K. + +\subsection{Curve files} + +A \E{curve file} contains additional file meta data, most importantly a \E{curve definition}. This is either an »expression« or a »script command«. Instead of a set of »spectra«, a curve file contains a set of »curves«. Each \E{curve} contains an array of curve parameters $p0, p1, ...$ (as many as prescribed by the curve definition), an array of flags that indicate whether a parameter is free or fixed, and a few numeric values $cq0, cq1, cq2$ describing fit quality. diff --git a/doc/Expressions.tex b/doc/Expressions.tex new file mode 100644 index 0000000000000000000000000000000000000000..83a76f7a2a84ea5fe5e247d0a0afc0e04bae64a5 --- /dev/null +++ b/doc/Expressions.tex @@ -0,0 +1,176 @@ +\section{Expressions} + +\subsection{Overview} + +Expressions are used in Frida at many different places. Some important uses are: + +In calculator mode: +\begin{lstlisting} + > 4+7 # yields 11 + > sin(pi/2) # yields 1 + > y[2,0,7] # yields the y value of file 2, spectrum 0, point 7 +\end{lstlisting} + +In operations like \cmd{ox}, \cmd{oy}, \cmd{op0}, ...: +\begin{lstlisting} + 3 > oy x^2 # in file 3 (a data file), set y:=x^2 + 5 > op0 y[4,0,j] # in file 5 (a curve file), initialize p0 with a value taken from file 4 +\end{lstlisting} + +In commands \cmd{dp}, \cmd{mr}, \cmd{md}, evaluated as boolean to select data points: +\begin{lstlisting} + 3 > dp y<10 # show all points with y<10 + 3 > mr x>0 # retain points with x>0, delete all other points + 3 > md x<=0 # another way of saying the same +\end{lstlisting} + +Expressions are the standard means to define a fit curve: +\begin{lstlisting} + 8 > cc p0+p1*t # create a curve to fit file 8, using an affine-linear function +\end{lstlisting} + +\subsection{Syntax} + +In the following, a very basic variant of Backus-Naur form is used. +A dot as in \texttt{$\langle$an\_integer\_value.$\rangle$} indicates that the meaning of this node is so obvious that a formal definition is not needed. + +\begin{lstlisting} + expr: + <arithmetic_expr> # arithmetic expression + <function_evaluation> # built-in function + resol ( <shift> ) # Dirac delta function, copies a given resolution function + conv ( <theory>, <shift> ) # convolutes 'theory' with a given resolution function + <numeric_value> # like 1.23 + <variable_reference> # like x[3,0,j] + t # running variable for curve evaluation + <curve_reference> ( <expr> ) # like c[4](x-0.2) +The special expressions dirac, conv, t are explained in [[curves]]. + + arithmetic_expr: + ( <expr> ) # parentheses around expression change nothing + - <expr> # negative value + ! <expr> # boolean negation + <expr> <bin_op> <expr> # binary operator, see below + <expr> ? <expr> : <expr> # conditional evaluation (lower precedence than all bin_op's) + + bin_op: # ordered by decreasing precedence + +- # error ( e.g. 193+-2 ) + ^ # exponentiation + over # binomial coefficient, 5 over 3 = 5!/3!/2! = 10 + * | / | mod | div # multiplication, division, remainder, integer division + + | - # addition, subtraction + > | >= | <= | < # comparison + == | != # equality, inequality + xor # boolean exclusive or + && # boolean and + || # boolean or + + function_evaluation: + ln ( <expr> ) # natural logarithm + ... # many more functions of one argument + min ( <expr>, <expr> ) # the smaller of the two arguments + ... # some more functions of two arguments + rehavneg ( <expr>, <expr>, <expr> ) # real part of the Havrialiak-Negami function + ... # some more functions of three arguments +for a full listing of built-in functions, see [[built-in functions]], or use \cmd{hf} at the FRIDA main level + + numeric_value: + <an_integer_number.> # like 8 or -17 + <a_floating_point_number.> # like .2 or 2.72 or -3.7e-3 + pi | e # these two mathematic constants are hard-coded + + variable_reference: + var_label # e.g. y, meaning y[k,j,i] with k,j,i given by context + var_label [ <expr> ] # e.g. p0[8] + jvar_label [ <expr>, <expr> ] # e.g. z2[6,3] + ivar_label [ <expr>, <expr>, <expr> ] # e.g. x[6,3,18] +\end{lstlisting} + +Note: above, "[" and "]" are \E{not} BNF notation to indicate an optional argument; they stand for real brackets. Actually, all indices \E{are} optional: if omitted, the default values k,j,i are filled in, depending on position. + +\begin{lstlisting} + var_label: + k # number of file in online memory + r<num.> # file constants r0, r1, ... + dr<num.> # error thereof (not yet implemented) + nj # number of spectra + jvar_label # j-dependent variable (j is the spectrum index) + + jvar_label: + j # index of spectrum + z<num.> # z variables z0, z1, ... + dz<num.> # error thereof (not yet implemented) + p<num.> # curve parameters p0, p1, ... + dp<num.> # error thereof (not yet implemented) + cq<num.> # curve quality cq0, cq1, cq2 + ni # number of data points + ivar_label # i-dependent variable (i is the data point index) + + ivar_label: + i # index of data point + x # x value + y # y value + dy # error thereof + + curve_reference: + c # c, meaning c[k,j], with k,j given by context + c [ <expr> ] # e.g. c[3], meaning c[3,j], with j given by context + c [ <expr>, <expr> ] # e.g. c[3,0] +\end{lstlisting} +Same note as for variable\_reference: "[" and "]" are \E{not} BNF notation to indicate an optional argument; they stand for real brackets. All indices \E{are} optional: if omitted, the default values k,j are filled in, depending on position. + +\subsection{Context-dependent evaluation: running variables k,j,i} + +How expressions are evaluated depends on the context in which they are used. For instance, the way ''dirac'' and ''conv'' are evaluated depends on whether or not a convolutand is set. See [[curves]] for more on this. + +In evaluating variable references like ''x'' or ''y[0,k-3,j]'' implicit or explicit use is made of running indices ''k'', ''j'', ''i''. A reference without index, like ''x'', is just a shortcut for ''x[k,j,i]''. Any of these indices may be omitted: + * ''x[8]'' stands for ''x[8,j,i]''; + * ''x[,3]'' stands for ''x[k,3,i]''; + * ''x[,,0]]'' stands for ''x[k,j,0]''; and so on. +Depending on context, loops are performed over ''k'', ''j'', ''i''. + +== Loop over k == + +The variable ''k'' stands for the number of a file in the online memory. Whenever a command is performed for a given file selection, this can be seen as running a loop over ''k''. For instance, in the simple command +\begin{lstlisting} + 3-5 > . y[,0,3] +\end{lstlisting} +the value y[k,0,3] is shown, with ''k'' taking successively the values 3, 4, 5, as given by the preset file selection indicated in the prompt. + +A more complex example: files 10 to 13 are curve files. Then the command +\begin{lstlisting} + ? > 10:13 cd k-8 +\end{lstlisting} +means, that curve file 10 shall be fitted to data file 10-8=2, curve file 11 to data file 3, and so on. + +== Loops over j and i == + +A command like \cmd{oy} implies a loop over ''j'' and ''i'': +\begin{lstlisting} + 4 > oy x^2 +\end{lstlisting} +is executed as follows: +\begin{lstlisting} + for all j with 0<=j<nj: + for all i with 0<=i<ni[j]: + let y[k,j,i] := x[k,j,i]^2 +\end{lstlisting} + +In contrast, a command like \cmd{oz0} or \cmd{op2} or \cmd{oi} implies a loop over ''j'' only. + +\subsection{Curves} + +Introductory example + +\begin{lstlisting} + > fm 101 3 testdata # create test data set +0 > =ox (i-50)/10 # x-scale now goes from -5 to 5 in steps of 0.1 +0 > =oy exp(-(x-j)^2/2/(1.4^j)^2)*ran(.8,1.2+0*i) # y(x) is now a noisy Gaussian +0 > cc p0*exp(-(t-p1)^2/2/p2^2) # create fit curve +1 > op0 1 # set initial value of fit parameter +1 > op1 1 # (in this case not really necessary, +1 > op2 1 # because by default the initial value is 1 anyway) +1 > cf # perform a fit +1 > 0,1 p 1 # plot spectrum 1 (data and curve) +0,1 > cp # show fit parameters +\end{lstlisting} diff --git a/doc/ps/FixMdframed.tex b/doc/FixMdframed.tex similarity index 100% rename from doc/ps/FixMdframed.tex rename to doc/FixMdframed.tex diff --git a/doc/ps/GraphicPostprocessing.tex b/doc/GraphicPostprocessing.tex similarity index 94% rename from doc/ps/GraphicPostprocessing.tex rename to doc/GraphicPostprocessing.tex index 54c8304773b13c7f7b1b341a072f62c6ffad4182..752914acedb32aa89030e757b164785b24b5e39b 100644 --- a/doc/ps/GraphicPostprocessing.tex +++ b/doc/GraphicPostprocessing.tex @@ -3,27 +3,9 @@ \def\iFM#1{\index{Frida!graphic file!#1 (PostScript macro)}\index{#1 (Frida PostScript macro)}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Introduction} +\section{Graphic files} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -Frida is a versatile data-analysis program. -From a command-line interface, it offers various methods to -visualize, manipulate and fit tabular data. -Frida is especially designed for the analysis of spectral data, -in particular from quasielastic neutron scattering (QENS). - -Frida is currently in maintenance mode, which means: -bugs will be fixed speedily, -new features will be implemented occasionally, -but development at large is stalled until a decision is taken -which QENS software shall be institutionally supported at MLZ and -partner institutes. - -The following notes describe how to post-process PostScript graphics files -generated by Frida, in order to obtain publication-grade figure. -These notes have grown out of an oral tutorial. -They will be gradually converted from slide-show format to written-manual style. - In Frida, two different methods are used to visualize data. For screen display in interactive sessions, Frida spawns a Gnuplot session. @@ -33,16 +15,12 @@ For saving graphics (command \T{gp}), Frida does \E{not} use Gnuplot's PostScript backend, but directly writes PostScript commands to a file. \index{PostScript!written by Frida}% -In the following, -the structure of this Frida-generated PostScript file is explained, -and it is shown how to embellish a plot by a few edits to this file. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Graphic formats, workflow} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +In this chapter, +the structure of the Frida-generated PostScript file is explained, +and it is shown how to manually edit such files to obtain publication-grade graphics. %============================================================================== -\subsection{File formats} +\subsection{Graphic file formats} %============================================================================== Graphics can be stored in many different file formats. @@ -139,11 +117,11 @@ should be left in vector format throughout all postprocessing. %============================================================================== Within Frida, the commands \T{p} and \T{a} -\iFC{p} -\iFC{a} +\iFC{p}% +\iFC{a}% are used to plot data and curves. Commands starting with the letter \T{g} -\iFC{g\ldots} +\iFC{g\ldots}% allow to choose output windows, to set data ranges, and to modify other control parameters. Plot commands are sent from Frida to a Gnuplot process, @@ -154,14 +132,14 @@ Instead, Frida holds a complete copy of the graphics state and of all plotted data in memory. When the command \T{gp} or \T{gf} is issued, -\iFC{gp} -\iFC{gf} +\iFC{gp}% +\iFC{gf}% these data are used to generate a PostScript file \index{PostScript!written by Frida}% that contains essentially the same plot as the active Gnuplot window. The command \T{gp} saves a complete graphics file -\iFC{gp} +\iFC{gp}% as \url{l<number>.ps} in the preset graphics output directory (by default \url{~/gnew/}). For \url{number}, the lowest unused integer is chosen. @@ -169,7 +147,7 @@ The so obtained file can immediately be viewed, printed, and modified in a text editor. Alternatively, the command \T{gf} generates an incomplete graphic file \url{l<number>.psa} -\iFC{gf} +\iFC{gf}% that is lacking all macro definitions. Such a file is useful when when several Frida-generated plots shall be combined into one figure (\cref{Sconcat}). @@ -329,13 +307,85 @@ or to multiple of the expected final size, before being rasterized. \index{Raster graphics!conversion from vector format}% +%============================================================================== +\subsection{File structure} +%============================================================================== + +\index{PostScript!Frida-generated|see {Frida, graphic file}}% +\index{Frida!graphic file!structure}% +\index{Plot!PostScript file|see {Frida, graphic file}}% +A Frida-generated PostScript file has three main parts: +\begin{itemize} +\item a dictionary with macro definitions, +\item a setup section, and +\item the actual plot. +\end{itemize} +The dictionary part is a verbatim copy of the file \url{wups11a.ps} +\index{wups11a.ps}% +\index{Frida!graphic file!dictionary part}% +\index{Frida!graphic file!macro definitions|see {dictionary part}}% +that is installed along with Frida; +depending on the installation path, +it typically resides in \url{/usr/share/frida} or \url{/usr/local/share/frida}. +If the graphic file is generated by the command \T{gf} instead of \T{gp}, +\iFC{gf}% +\iFC{gp}% +then the dictionary part is omitted. +The dictionary part mainly contains a huge set of macro definitions. +Many of these macros are used in the page setup or/and in the Frida generated plot. +Many other macros are not used by Frida but provided for users who may employ them +in manual enhancements of Frida generated graphics. +To give just two important examples that are further explained below: +There are macros for typesetting strings that contain greek letters, symbols, +subscripts or superscripts (\cref{SfpsStringOps}); +and there are macros for building a legend that explains the meaning of +plotted symbols (\cref{SfpsTextPlacement}). + +The setup section contains commands to control +\index{Frida!graphic file!setup part}% +the size and aspect ratio of the plot frame, +the position on the page, +the background, +the appearance of metadata, +and the shape, size, and color of plot symbols. +All this is described below in \cref{SfpsSettings}. +The entire section is a verbatim copy of the file \url{g3.ps} +\index{g3.ps}% +that resides in the same \url{share} directory as \url{wups11a.ps}. +These file names are soft coded in the configuration file \url{frida.ini}. +\index{frida.ini}% +\index{Frida!customization!frida.ini}% +This allows users to replace \url{g3.ps} by a customized version of their own. + +Only the third part of a Frida-generated graphic file with the actual plot +is not just copied, +\index{Frida!graphic file!plot part}% +but written line by line by Frida. +It consists of three sections: +an initial section that defines a plot frame with coordinate axes, ticks, +numbers, and labels; +a core section with the data points to be plotted; +and a metadata section that explains where the data come from. +All this is further elaborated in \cref{SfpsPlotFrame}. + +For orientation in a graphic file, +there are a few marks. +\index{Frida!graphic file!marks}% +Open a graphic file with an editor or a text viewer, +and search for the string \T{ewu}. +\index{ewu (mark in Frida graphic file)}% +It will occur exactly once, +in a comment block near the end of the dictionary part. +And similarly, the mark \T{ecu} should occur no more than once, +\index{ecu (mark in Frida graphic file)}% +in a comment block near the end of the setup section. + %============================================================================== \subsection{PostScript}\label{SPostScript} %============================================================================== We now give a brief introduction to programming and plotting in PostScript, -and thereby provides a foundation for the following \cref{SFridaPS} about -editing Frida-generated PostScript code. +and thereby provide a foundation for the editing of Frida-generated PostScript code. PostScript was created around 1981, and got into wide-spread use thanks to consistent support by Apple @@ -499,7 +549,7 @@ To continue execution beyond the console message, use the command sequence \T{dup ==}. \begin{figure}[tp] -\centering{\includegraphics[width=.8\textwidth]{ex3.ps}} +\centering{\includegraphics[width=.8\textwidth]{fig/ps/ex3.ps}} \caption{PostScript plotting examples, drawn by the code from the end of \cref{SPostScript}.} \label{Fps} \end{figure} @@ -579,102 +629,17 @@ and more. For all this, see the Red Book \cite{Ado99}, or/and start by modifying sample code from Frida's macro collection. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Postprocessing Frida graphics}\label{SFridaPS} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -In \cref{SWorkflow} we saw \E{how} to modify a PostScript file in an -interactive edit session, -using a text editor and an image viewer side-by-side. -Let us now discuss \E{what} to modify in a Frida-generated PostScript graphic. -We start with a structural overview before we turn to single PostScript commands -that allow parameter changes or other modifications. - -%============================================================================== -\subsection{File structure} -%============================================================================== - -\index{PostScript!Frida-generated|see {Frida, graphic file}}% -\index{Frida!graphic file!structure}% -\index{Plot!PostScript file|see {Frida, graphic file}}% -A Frida-generated PostScript file has three main parts: -\begin{itemize} -\item a dictionary with macro definitions, -\item a setup section, and -\item the actual plot. -\end{itemize} -The dictionary part is a verbatim copy of the file \url{wups11a.ps} -\index{wups11a.ps}% -\index{Frida!graphic file!dictionary part}% -\index{Frida!graphic file!macro definitions|see {dictionary part}}% -that is installed along with Frida; -depending on the installation path, -it typically resides in \url{/usr/share/frida} or \url{/usr/local/share/frida}. -If the graphic file is generated by the command \T{gf} instead of \T{gp}, -\iFC{gf}% -\iFC{gp}% -then the dictionary part is omitted. -The dictionary part mainly contains a huge set of macro definitions. -Many of these macros are used in the page setup or/and in the Frida generated plot. -Many other macros are not used by Frida but provided for users who may employ them -in manual enhancements of Frida generated graphics. -To give just two important examples that are further explained below: -There are macros for typesetting strings that contain greek letters, symbols, -subscripts or superscripts (\cref{SfpsStringOps}); -and there are macros for building a legend that explains the meaning of -plotted symbols (\cref{SfpsTextPlacement}). - -The setup section contains commands to control -\index{Frida!graphic file!setup part}% -the size and aspect ratio of the plot frame, -the position on the page, -the background, -the appearance of metadata, -and the shape, size, and color of plot symbols. -All this is described below in \cref{SfpsSettings}. -The entire section is a verbatim copy of the file \url{g3.ps} -\index{g3.ps}% -that resides in the same \url{share} directory as \url{wups11a.ps}. -These file names are soft coded in the configuration file \url{frida.ini}. -\index{frida.ini}% -\index{Frida!customization!frida.ini}% -This allows users to replace \url{g3.ps} by a customized version of their own. - -Only the third part of a Frida-generated graphic file with the actual plot -is not just copied, -\index{Frida!graphic file!plot part}% -but written line by line by Frida. -It consists of three sections: -an initial section that defines a plot frame with coordinate axes, ticks, -numbers, and labels; -a core section with the data points to be plotted; -and a metadata section that explains where the data come from. -All this is further elaborated in \cref{SfpsPlotFrame}. - -For orientation in a graphic file, -there are a few marks. -\index{Frida!graphic file!marks}% -Open a graphic file with an editor or a text viewer, -and search for the string \T{ewu}. -\index{ewu (mark in Frida graphic file)}% -It will occur exactly once, -in a comment block near the end of the dictionary part. -And similarly, the mark \T{ecu} should occur no more than once, -\index{ecu (mark in Frida graphic file)}% -in a comment block near the end of the setup section. - %============================================================================== \subsection{Setup}\label{SfpsSettings} %============================================================================== \index{Frida!graphic file!setup part|(}% \begin{figure}[tp] -\centering{\includegraphics[width=.8\textwidth]{nho1-1.ps}} +\centering{\includegraphics[width=.8\textwidth]{fig/ps/nho1-1.ps}} \\[.8mm] -\includegraphics[width=.4\textwidth]{nho1-1.ps} +\includegraphics[width=.4\textwidth]{fig/ps/nho1-1.ps} \hfill -\includegraphics[width=.4\textwidth]{nho1-2.ps} +\includegraphics[width=.4\textwidth]{fig/ps/nho1-2.ps} \caption{One and the same figure plotted with three different magnifications or/and size settings. Top: a figure with global size 12 (\T{defsiz}) and reduction 1 (\T{defred}), @@ -802,7 +767,7 @@ This affects only raw PostScript image, since it will be compensated as soon as a bounding box is set. \begin{figure}[tp] -\centering{\includegraphics[width=.6\textwidth]{aCols.ps}} +\centering{\includegraphics[width=.6\textwidth]{fig/ps/aCols.ps}} \caption{Predefined color sequences. \iFM{aCol1 etc.}% \index{Color!sequence, predefined by Frida macro}% @@ -815,7 +780,7 @@ arbitrarily, except if the subscript \T{fix} indicates the contrary.} \end{figure} \begin{figure}[tp] -\centering{\includegraphics[width=.9\textwidth]{pSet.ps}} +\centering{\includegraphics[width=.9\textwidth]{fig/ps/pSet.ps}} \caption{Predefined symbols. \index{Plot symbol!Frida graphic}% \index{Symbol!Frida graphic}% @@ -896,7 +861,7 @@ The command \T{ipCol} takes as argument a number between $0$ and $ni-1$, and sets a color from the previously selected sequence. \begin{figure}[tp] -\centering{\includegraphics[width=.5\textwidth]{Dashes.ps}} +\centering{\includegraphics[width=.5\textwidth]{fig/ps/Dashes.ps}} \caption{Dashed lines, for different arguments of \T{lset}.} \label{Fdashes} \index{Dash pattern!Frida graphic}% @@ -1083,7 +1048,7 @@ takes the last string ``$/3$'', concatenates it with the contents of the special and thereby generates the output ``$x=2\pi/3$''. \begin{table}[pt] -\includegraphics[width=1\textwidth]{symbols1.ps} +\includegraphics[width=1\textwidth]{fig/ps/symbols1.ps} \caption{Upper row: latin characters from the ``Helvetica'' font. Lower row: corresponding greek characters from the ``Symbol'' font.} \label{Tgrec} @@ -1095,7 +1060,7 @@ Lower row: corresponding greek characters from the ``Symbol'' font.} \end{table} \begin{table}[pt] -\centerline{\includegraphics[width=.692\textwidth]{symbols2.ps}} +\centerline{\includegraphics[width=.692\textwidth]{fig/ps/symbols2.ps}} \caption{These symbols occupy equal positions in ``Helvetica'' (and other fonts with standard latin encoding) and in the ``Symbol'' font.} @@ -1108,7 +1073,7 @@ and in the ``Symbol'' font.} \end{table} \begin{table}[pt] -\centerline{\includegraphics[width=.231\textwidth]{symbols3.ps}} +\centerline{\includegraphics[width=.231\textwidth]{fig/ps/symbols3.ps}} \caption{Keyboard symbols in ``Helvetica'' that correspond to completely different symbols in the ``Symbol'' font.} \label{TdifferingChars} @@ -1116,7 +1081,7 @@ that correspond to completely different symbols in the ``Symbol'' font.} \end{table} \begin{table}[pt] -\centerline{\includegraphics[width=1.\textwidth]{symbols4.ps}} +\centerline{\includegraphics[width=1.\textwidth]{fig/ps/symbols4.ps}} \caption{These symbols from the ``Symbol'' font are accessible through octal codes.} \label{ToctalSym} \index{Symbol!PostScript font}% @@ -1124,7 +1089,7 @@ that correspond to completely different symbols in the ``Symbol'' font.} \end{table} \begin{table}[pt] -\centerline{\includegraphics[width=1.\textwidth]{symbols6.ps}} +\centerline{\includegraphics[width=1.\textwidth]{fig/ps/symbols6.ps}} \caption{These symbols and accentuated letters from ``Helvetica'' (and other fonts with standard latin encoding) are accessible through octal codes.} @@ -1235,7 +1200,7 @@ or %============================================================================== \begin{figure}[tp] -\centering{\includegraphics[width=.2\textwidth]{Legend.ps}} +\centering{\includegraphics[width=.2\textwidth]{fig/ps/Legend.ps}} \caption{A plot legend, created by the code shown in \cref{SfpsTextPlacement}.} \label{Flegend} \index{Legend!Frida graphic}% diff --git a/doc/Introduction.tex b/doc/Introduction.tex new file mode 100644 index 0000000000000000000000000000000000000000..64d09296625b890eb5570cb143da1fd44ce85475 --- /dev/null +++ b/doc/Introduction.tex @@ -0,0 +1,22 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Frida is a versatile data analysis program. +From a command line interface, +it offers numerous methods to +visualize, manipulate and fit tabular data. +Frida is especially designed for the analysis of spectral data, +in particular from quasielastic neutron scattering (QENS). + +Frida is currently in maintenance mode, which means: +bugs will be fixed speedily, +new features will be implemented occasionally, +but development at large is stalled until a decision is taken +which QENS software shall be institutionally supported at MLZ and +partner institutes. + +This User Manual is a fragment: +A few topics are covered in depth, others are missing completely. +For complementary information, +see the online docs at \url{http://apps.jcns.fz-juelich.de/doku/frida/start}. diff --git a/doc/ps/Setup.tex b/doc/Setup.tex similarity index 99% rename from doc/ps/Setup.tex rename to doc/Setup.tex index efcd9d15e9871e945b5f926e684ec96cc25d4aaa..d33af2235cffe6592a0b9bd69bbd74b9353f4d9a 100644 --- a/doc/ps/Setup.tex +++ b/doc/Setup.tex @@ -62,6 +62,9 @@ \@ifpackagelater{unicode-math}{2014/07/01}{\olducmfalse}{\olducmtrue} \makeatother +\def\E#1{\textit{#1}} +\def\cmd#1{\texttt{#1}} + %------------------------------------------------------------------------------- % Sectioning %------------------------------------------------------------------------------- diff --git a/doc/ps/Title.tex b/doc/Title.tex similarity index 95% rename from doc/ps/Title.tex rename to doc/Title.tex index fd746172c4687a104e0a639fe497eea608bf0066..39ab8b20890cac287c75bd93e2833b95c3cb4411 100644 --- a/doc/ps/Title.tex +++ b/doc/Title.tex @@ -11,7 +11,8 @@ \Huge {\bf Frida}\\[10mm] \huge -{\bf Graphics postprocessing}\\[10mm] +{\bf User Manual}\\[10mm] +{\bf (incomplete preview, work in progress)}\\[10mm] \large Frida version \FridaVersionNumber\\ \today\\\vfill diff --git a/doc/ps/FridaGraphicPostprocessing.tex b/doc/UserManual.tex similarity index 87% rename from doc/ps/FridaGraphicPostprocessing.tex rename to doc/UserManual.tex index 883bcd27577e0eff92c1f94783935ffb3b42932c..f47b6b2741222c9000aea9aa0692dc971d75a12c 100644 --- a/doc/ps/FridaGraphicPostprocessing.tex +++ b/doc/UserManual.tex @@ -11,7 +11,7 @@ \def\E#1{\textsl{#1}} \def\T#1{\texttt{#1}} -\def\FridaVersionNumber{2.3.3c} +\def\FridaVersionNumber{2.3.5a} \begin{document} \flushbottom @@ -21,8 +21,11 @@ \tableofcontents %\cleardoublepage -%\include{Introduction} +\include{Introduction} +\include{DataModel} +\include{Expressions} \include{GraphicPostprocessing} +\include{Changes} %\otherchapter{Bibliography} %\section*{Bibliography} diff --git a/doc/ps/Dashes.ps b/doc/fig/ps/Dashes.ps similarity index 100% rename from doc/ps/Dashes.ps rename to doc/fig/ps/Dashes.ps diff --git a/doc/ps/Legend.ps b/doc/fig/ps/Legend.ps similarity index 100% rename from doc/ps/Legend.ps rename to doc/fig/ps/Legend.ps diff --git a/doc/ps/aCols.ps b/doc/fig/ps/aCols.ps similarity index 100% rename from doc/ps/aCols.ps rename to doc/fig/ps/aCols.ps diff --git a/doc/ps/ex3.ps b/doc/fig/ps/ex3.ps similarity index 100% rename from doc/ps/ex3.ps rename to doc/fig/ps/ex3.ps diff --git a/doc/ps/nho1-1.ps b/doc/fig/ps/nho1-1.ps similarity index 100% rename from doc/ps/nho1-1.ps rename to doc/fig/ps/nho1-1.ps diff --git a/doc/ps/nho1-2.ps b/doc/fig/ps/nho1-2.ps similarity index 100% rename from doc/ps/nho1-2.ps rename to doc/fig/ps/nho1-2.ps diff --git a/doc/ps/pSet.ps b/doc/fig/ps/pSet.ps similarity index 100% rename from doc/ps/pSet.ps rename to doc/fig/ps/pSet.ps diff --git a/doc/ps/symbols1.ps b/doc/fig/ps/symbols1.ps similarity index 100% rename from doc/ps/symbols1.ps rename to doc/fig/ps/symbols1.ps diff --git a/doc/ps/symbols2.ps b/doc/fig/ps/symbols2.ps similarity index 100% rename from doc/ps/symbols2.ps rename to doc/fig/ps/symbols2.ps diff --git a/doc/ps/symbols3.ps b/doc/fig/ps/symbols3.ps similarity index 100% rename from doc/ps/symbols3.ps rename to doc/fig/ps/symbols3.ps diff --git a/doc/ps/symbols4.ps b/doc/fig/ps/symbols4.ps similarity index 100% rename from doc/ps/symbols4.ps rename to doc/fig/ps/symbols4.ps diff --git a/doc/ps/symbols6.ps b/doc/fig/ps/symbols6.ps similarity index 100% rename from doc/ps/symbols6.ps rename to doc/fig/ps/symbols6.ps diff --git a/doc/ps/FridaGraphicPostprocessing.pdf b/doc/ps/FridaGraphicPostprocessing.pdf deleted file mode 100644 index 8c8ddb65326064c43baea1a390bddab2e7c004c2..0000000000000000000000000000000000000000 Binary files a/doc/ps/FridaGraphicPostprocessing.pdf and /dev/null differ