<?xml version="1.0" ?><!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd" [ <!ENTITY kpl "<application>Kpl</application>"> <!ENTITY kappname "&kpl;"> <!ENTITY % addindex "IGNORE"> <!ENTITY % English "INCLUDE"> ]> <book lang="&language;"> <bookinfo> <title>The Kpl Handbook</title> <authorgroup> <author> <firstname>Werner</firstname> <surname>Stille</surname> <affiliation> <address><email>stille@uni-freiburg.de</email></address> </affiliation> </author> </authorgroup> <!-- TRANS:ROLES_OF_TRANSLATORS --> <copyright> <year>2001</year> <holder>Werner Stille</holder> </copyright> <legalnotice>&FDLNotice;</legalnotice> <date>12/10/2001</date> <releaseinfo>2.3.0</releaseinfo> <abstract> <para> &kpl; is a program for two-dimensional graphical presentation of data sets and functions. </para> </abstract> <keywordset> <keyword>KDE</keyword> <keyword>Kpl</keyword> <keyword>plot</keyword> <keyword>parameter fit</keyword> </keywordset> </bookinfo> <chapter id="introduction"> <title>Introduction</title> <para> &kpl; is a program for two-dimensional graphical presentation of data sets and functions. Moreover multidimensional nonlinear parameter fits of functions to data sets can be performed using the Levenberg-Marquardt algorithm. Also general linear least square parameter fits are possible. A <acronym>DCOP</acronym> interface can be used to control &kpl; by other applications and scripts.</para> <para> All settings necessary for a complete description of the presentation can be saved in plot files. These files as well as data files may be chosen by command line parameters, using the File menu, or by drag and drop.</para> <para> Automatic scaling and normalization allow the easy graphical presentation of data. Also parameter fits can be performed automatically.</para> <para> The settings of a presentation may be changed using the Edit menu. Here also additional data sets and functions can be included which can be displayed in the same as well as in different data windows.</para> <sect1 id="kpl-revhistory"> <title>&kpl; Revision History</title> <para> <itemizedlist> <listitem> <para>Version 2.3.0 (October 12, 2001)</para> <itemizedlist> <listitem><para>Needs KDE 2.2</para></listitem> <listitem><para>Residuals of parameter fits can be displayed</para></listitem> <listitem><para>Arrays optionally can be saved within plot files</para></listitem> <listitem><para>Separator for exported files can be set</para></listitem> <listitem><para>Parameters of function items can be applied directly</para></listitem> <listitem><para>New DCOP function: activateItem()</para></listitem> <listitem><para>Improved selection and activation in dialog Items</para></listitem> <listitem><para>Dialogs improved for KDE standard compliance</para></listitem> <listitem><para>Return type of boolean DCOP functions changed to int to avoid problems</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 2.2 (May 22, 2001)</para> <itemizedlist> <listitem><para>Data and plot files optionally can be added to the current plot</para></listitem> <listitem><para>New decoration items: text, line, arrow, rectangle, ellipse</para></listitem> <listitem><para>Position of items can be changed by dragging with the mouse</para></listitem> <listitem><para>Reload button in Array dialog</para></listitem> <listitem><para>Empty lines in data files are ignored</para></listitem> <listitem><para>x-axis and y-axis can optionally be placed on top side or on right side, respectively</para></listitem> <listitem><para>Japanese translation</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 2.1.1 (January 27, 2001)</para> <itemizedlist> <listitem><para>Bug fixes</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 2.1 (January 22, 2001)</para> <itemizedlist> <listitem><para>DCOP interface</para></listitem> <listitem><para>Logarithmic scales</para></listitem> <listitem><para>Only modified files are reloaded periodically</para></listitem> <listitem><para>Position of toolbar saved in configuration file</para></listitem> <listitem><para>Improved New Item dialog</para></listitem> <listitem><para>New array or function items inherit the normalization factors of preceeding items</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 2.0 (November 21, 2000)</para> <itemizedlist> <listitem><para>Needs KDE 2.0, optimized for KDE 2</para></listitem> <listitem><para>Toolbar configuration item in Settings menu </para></listitem> <listitem><para>Save absolute paths item in Settings menu </para></listitem> <listitem><para>Improved double value input validation</para></listitem> <listitem><para>Spinboxes in array dialog are updated</para></listitem> <listitem><para>Unicode text in .plo files (recode your old .plo files to UTF8 when they contain non-ASCII characters)</para></listitem> <listitem><para>Size of dialog windows can be changed</para></listitem> <listitem><para>Polish translation</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 1.2 (August 10, 2000)</para> <itemizedlist> <listitem><para>Undo/Redo Actions</para></listitem> <listitem><para>Package for KDE 2 beta available</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 1.1 (May 5, 2000)</para> <itemizedlist> <listitem><para>Multidimensional parameter fits</para></listitem> <listitem><para>Improved parameter fit dialog</para></listitem> <listitem><para>Increased printing resolution</para></listitem> <listitem><para>Both portrait and landscape PostScript output </para></listitem> <listitem><para>More examples</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 1.0 (February 21, 2000)</para> <itemizedlist> <listitem><para>Buttons to open symbol selection dialog show actual symbol </para></listitem> <listitem><para>Improved internationalization</para></listitem> <listitem><para>Extended help</para></listitem> <listitem><para>More examples</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 0.4 (January 14, 2000)</para> <itemizedlist> <listitem><para>General linear least square parameter fit </para></listitem> <listitem><para>Long parameter fit runs can be terminated by user </para></listitem> <listitem><para>Output format for parameter files and dialogs can be changed</para></listitem> <listitem><para>Output format for status bar is set according to screen resolution</para></listitem> <listitem><para>Item dialog is modeless now</para></listitem> <listitem><para>Multiple input files at commandline and at Drag and Drop </para></listitem> <listitem><para>Both KDE and Qt Drag and Drop protocols supported </para></listitem> <listitem><para>Session management</para></listitem> <listitem><para>Function value buffers for faster redrawing </para></listitem> <listitem><para>More example functions</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 0.3 (September 28, 1999)</para> <itemizedlist> <listitem><para>Plot items can be deactivated to hide them (temporarily) </para></listitem> <listitem><para>Sequence of plot items can be changed easily </para></listitem> <listitem><para>Improved reading of plot files by use of KSimpleConfig </para></listitem> <listitem><para>New plot files save the (de)activation state of items </para></listitem> <listitem><para>Improved recognition of .plo files by file name </para></listitem> <listitem><para>No multiselection necessary for parameter fitting when only one function and one array item are present</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 0.2 (July 29, 1999)</para> <itemizedlist> <listitem><para>Needs KDE 1.1</para></listitem> <listitem><para>Powered by KDevelop</para></listitem> <listitem><para>Nonlinear parameter fit</para></listitem> <listitem><para>Positions of menu bar and toolbar saved in configuration file</para></listitem> <listitem><para>Popup menus with icons</para></listitem> <listitem><para>Statusbar includes short help</para></listitem> <listitem><para>Close item in File menu</para></listitem> <listitem><para>Open Recent item in File menu</para></listitem> <listitem><para>(De)activation of unsaved changes warning </para></listitem> <listitem><para>Menu and toolbar items for magnification increasing/decreasing</para></listitem> <listitem><para>Configure Key Bindings item in Options menu </para></listitem> <listitem><para>Context menu</para></listitem> <listitem><para>Improved painting by use of pixmap buffer </para></listitem> <listitem><para>Function parameters may be saved separately in ASCII files </para></listitem> <listitem><para>Function values may be exported in ASCII files </para></listitem> <listitem><para>Optional display of function source in parameter dialogs </para></listitem> <listitem><para>Optional calculation of bounding box for PostScript files (using Ghostscript)</para></listitem> <listitem><para>MimeType for kpl plot files</para></listitem> </itemizedlist> </listitem> <listitem> <para>Version 0.1 (April 13, 1999, first release)</para> </listitem> </itemizedlist> </para> </sect1> </chapter> <chapter id="using-kpl"> <title>Using &kpl;</title> <sect1 id="command-line-options"> <title>Command Line Options</title> <sect2 id="specify-a-file"> <title>Specify a File</title> <para> When starting &kpl; from the command prompt, you can supply the names of one or more plot or data files (either local filenames or URLs): <cmdsynopsis> <command>kpl</command> <arg rep="repeat"><replaceable>file</replaceable></arg> </cmdsynopsis> </para> <para> In case of more than one entered file and activated setting <guimenuitem>Add <accel>F</accel>iles</guimenuitem> all files are shown in one window, otherwise new windows are opened for each file.</para> <para> In case of activated setting <guimenuitem>Aut<accel>o</accel>plot</guimenuitem>, the graphical presentation is displayed immediately.</para> <para> When in addition <guilabel>Autofit</guilabel> is activated, in case of a data file also a parameter fit to a function is automatically performed and the function is displayed, too.</para> </sect2> <sect2> <title>Other Command Line Options</title> <para>The following command line help options are available</para> <variablelist> <varlistentry> <term><command>kpl <option>--help</option></command></term> <listitem><para>This lists the most basic options available at the command line.</para></listitem> </varlistentry> <varlistentry> <term><command>kpl <option>--help-qt</option></command></term> <listitem><para>This lists the options available for changing the way &kpl; interacts with Qt.</para></listitem> </varlistentry> <varlistentry> <term><command>kpl <option>--help-kde</option></command></term> <listitem><para>This lists the options available for changing the way &kpl; interacts with KDE.</para></listitem> </varlistentry> <varlistentry> <term><command>kpl <option>--help-all</option></command></term> <listitem><para>This lists all of the command line options. </para></listitem> </varlistentry> <varlistentry> <term><command>kpl <option>--author</option></command></term> <listitem><para>Lists &kpl;'s author in the terminal window </para></listitem> </varlistentry> <varlistentry> <term><command>kpl <option>--version</option></command></term> <listitem><para>Lists version information for Qt, KDE, and &kpl;. Also available through <command>kpl <option>-v</option></command> </para></listitem> </varlistentry> </variablelist> </sect2> </sect1> <sect1 id="konqueror"> <title>Start from Konqueror</title> <para> &kpl; can be started to display a plot file by clicking its symbol in a &konqueror; file manager window or by selecting this action from its context menu.</para> </sect1> <sect1 id="drag-and-drop"> <title>Drag and Drop</title> <para> &kpl; supports the Drag and Drop protocol of KDE and Qt. This means that you can open one or more plot or data files by dragging their symbols onto the &kpl; window. Data files will be recognized by the extension <literal role="extension">.dat</literal>, plot files by the extension <literal role="extension">.plo</literal>. In addition to local files also URLs may be passed in this way.</para> <para> In case of more than one dropped file and activated setting <guimenuitem>Add <accel>F</accel>iles</guimenuitem> all files are shown in one window, otherwise new windows are opened for each file.</para> </sect1> <sect1 id="positioning"> <title>Positioning with the Mouse</title> <para> In addition to change the position of items by use of the dialogs, &kpl; supports dragging of frame, legend, text, line, arrow, rectangle, and ellipse items with the mouse.</para> <para> To move an item, its area has to be clicked with the &LMB;. When the mouse is moved with the &LMB; pressed, a dashed rectangle shows the current position, displayed also on the status bar. The plot will be updated corresponding to the new position after releasing of the mouse button.</para> <para> Moving of a frame item will update also the position of all its child items.</para> <para> More than one item can be selected for simultaneous moving by clicking their areas with the <keycap>Ctrl</keycap> key pressed.</para> </sect1> <sect1 id="statusbar"> <title>Status Bar</title> <para> The horizontal and vertical positions of the mouse pointer are displayed in cm on the right side of the status bar at the bottom of the kpl window, for positions inside the data frame in data units, too. When the position of items is changed by dragging with the mouse, the current item position will be displayed.</para> <para> Left to these position fields the state of the <guimenuitem>Add <accel>F</accel>iles</guimenuitem> option is displayed.</para> <para> On the left side the short help for the different actions appears.</para> </sect1> </chapter> <chapter id="commands"> <title>Command Reference</title> <sect1 id="file-menu"> <title>The File Menu</title> <para> <variablelist> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>N</keycap></keycombo></shortcut> <guimenu><accel>F</accel>ile</guimenu><guimenuitem><accel>N</accel>ew</guimenuitem> </menuchoice></term> <listitem><para><action>Creates a new empty plot to insert items using the dialog </action> <link linkend="items">Items</link>. </para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo></shortcut> <guimenu><accel>F</accel>ile</guimenu><guimenuitem><accel>O</accel>pen Plot File</guimenuitem> </menuchoice></term> <listitem><para><action>Opens one or more existing plot files.</action></para> <para> In a plot file all settings of a graphical presentation are stored in ASCII format.</para> <para> In case of activated setting <guimenuitem>Aut<accel>o</accel>plot</guimenuitem> the graphical presentation is displayed immediately.</para> <para> In case of more than one selected file and activated setting <guimenuitem>Add <accel>F</accel>iles</guimenuitem> all files are shown in one window, otherwise new windows are opened for each file.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>F</accel>ile</guimenu> <guimenuitem>Open <accel>D</accel>ata File</guimenuitem> </menuchoice></term> <listitem><para><action>Opens one or more existing data files.</action></para> <para> The numeric values have to be arranged in rows and columns in an ASCII file. Within a row the values may be separated by commas, tabs, or spaces.</para> <para> The first character of comment lines has to be <keycap>#</keycap>.</para> <para> The number of rows and columns is detected by &kpl;. Empty lines are ignored.</para> <para> In case of activated setting <guimenuitem>Aut<accel>o</accel>plot</guimenuitem> the graphical presentation is displayed immediately according to the settings done using the dialog <link linkend="autoplot">Configure Autoplot</link>.</para> <para> In case of more than one selected file and activated setting <guimenuitem>Add <accel>F</accel>iles</guimenuitem> all files are shown in one window, otherwise new windows are opened for each file.</para> <para> Loading of data files overwrites an eventually displayed presentation in case of deactivated setting <guimenuitem>Add <accel>F</accel>iles</guimenuitem>. When a data file is to be inserted in an existing graphical presentation, this has to be done by creating a new item using the dialog <link linkend="items">Items</link> or by activating <guimenuitem>Add <accel>F</accel>iles</guimenuitem>.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>F</accel>ile</guimenu> <guimenuitem>Open <accel>R</accel>ecent</guimenuitem> </menuchoice></term> <listitem><para><action>Opens a submenu for selecting one of up to ten recently opened plot or data files.</action></para> <para> In case of activated setting <guimenuitem>Add <accel>F</accel>iles</guimenuitem> the file is appended to a current plot, otherwise it will replace a current plot.</para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>S</keycap></keycombo></shortcut> <guimenu><accel>F</accel>ile</guimenu><guimenuitem><accel>S</accel>ave</guimenuitem> </menuchoice></term> <listitem><para><action>Saves created or edited plot files. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>F</accel>ile</guimenu> <guimenuitem>Save <accel>A</accel>s</guimenuitem> </menuchoice></term> <listitem><para><action>Allows to save the current graphical presentation in a new plot file.</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>W</keycap></keycombo></shortcut> <guimenu><accel>F</accel>ile</guimenu><guimenuitem><accel>C</accel>lose</guimenuitem> </menuchoice></term> <listitem><para><action>Closes the current plot file. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>P</keycap></keycombo></shortcut> <guimenu><accel>F</accel>ile</guimenu><guimenuitem><accel>P</accel>rint</guimenuitem> </menuchoice></term> <listitem><para><action>Prints the graphical presentation to a printer chosen from a list or to a file.</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>F</accel>ile</guimenu> <guimenuitem>Display P<accel>l</accel>ot</guimenuitem> </menuchoice></term> <listitem><para><action>Displays the graphical presentation or refreshes after changes.</action></para> <para> In case of activated setting <guimenuitem>Aut<accel>o</accel>plot</guimenuitem> the graphical presentation is displayed immediately after loading of plot or data files and after changes.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>F</accel>ile</guimenu> <guisubmenu>PostScript Outp<accel>u</accel>t</guisubmenu> </menuchoice></term> <listitem><para><action>Saves the graphical presentation as a PostScript file in </action> <guimenuitem><accel>P</accel>ortrait</guimenuitem> or <guimenuitem><accel>L</accel>andscape</guimenuitem> orientation.</para> <para> In comparison with the output obtained with <guimenuitem><accel>P</accel>rint</guimenuitem> and <guilabel>Print to File</guilabel>, these files may be edited easily. For example, the coordinates of data points are stored without scaling, according to the values from data files or function evaluations.</para> <para> The output can be used as Encapsulated PostScript (EPS) to import graphics in other applications. The bounding box is calculated exactly when <guimenuitem>Calculate <accel>P</accel>S Bounding Box</guimenuitem> is checked in the <link linkend="settings-menu">Settings</link> menu.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>F</accel>ile</guimenu> <guimenuitem>New <accel>W</accel>indow</guimenuitem> </menuchoice></term> <listitem><para><action>Opens a new instance of &kpl;. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>F</accel>ile</guimenu> <guimenuitem>Close W<accel>i</accel>ndow</guimenuitem> </menuchoice></term> <listitem><para><action>Close the window.</action> If the closed window was the last instance open, &kpl; will exit.</para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>Q</keycap></keycombo></shortcut> <guimenu><accel>F</accel>ile</guimenu><guimenuitem><accel>Q</accel>uit</guimenuitem> </menuchoice></term> <listitem><para><action>Exits &kpl;.</action></para></listitem> </varlistentry> </variablelist> </para> </sect1> <sect1 id="edit-menu"> <title>The Edit Menu</title> <para> <variablelist> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>Z</keycap></keycombo></shortcut> <guimenu><accel>E</accel>dit</guimenu><guimenuitem>Und<accel>o</accel></guimenuitem> </menuchoice></term> <listitem><para><action>This is used to eliminate or reverse the most recent change of the plot.</action> The maximum number of saved states is 20.</para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut><keycombo><keycap>Ctrl</keycap> <keycap>Shft</keycap><keycap>Z</keycap></keycombo></shortcut> <guimenu><accel>E</accel>dit</guimenu><guimenuitem>Re<accel>d</accel>o</guimenuitem> </menuchoice></term> <listitem><para><action>This will reverse the most recent change (if any) made using </action> <guimenuitem>Und<accel>o</accel></guimenuitem>. </para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>E</accel>dit</guimenu><guimenuitem>I<accel></accel>tems</guimenuitem> </menuchoice></term> <listitem><para><action>Opens the dialog </action> <link linkend="items">Items</link> (if not already open), where items of the presentation may be added, edited, deleted, and copied. Also parameter fits of functions to data sets can be performed here. The dialog can be left open during work with &kpl;.</para></listitem> </varlistentry> </variablelist> </para> </sect1> <sect1 id="view-menu"> <title>The View Menu</title> <para> <variablelist> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo></shortcut> <guimenu><accel>V</accel>iew</guimenu><guimenuitem>Zoom <accel>I</accel>n</guimenuitem> </menuchoice></term> <listitem><para><action>Increases the magnification by 20 %. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut> <keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo></shortcut> <guimenu><accel>V</accel>iew</guimenu><guimenuitem>Zoom <accel>O</accel>ut</guimenuitem> </menuchoice></term> <listitem><para><action>Decreases the magnification by 20 %. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>V</accel>iew</guimenu><guimenuitem><accel>Z</accel>oom</guimenuitem> </menuchoice></term> <listitem><para><action>Here the magnification factor of the graphical presentation can be set.</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut><keycap>F5</keycap></shortcut> <guimenu><accel>V</accel>iew</guimenu><guimenuitem><accel>R</accel>edisplay</guimenuitem> </menuchoice></term> <listitem><para><action>By this the current data or plot file will be reloaded and presented.</action> <guimenuitem>Aut<accel>o</accel>plot</guimenuitem> will be activated.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>V</accel>iew</guimenu><guimenuitem>Reload <accel>p</accel>eriodically</guimenuitem> </menuchoice></term> <listitem><para><action>Here periodically refreshing of the presentation of plot or data files may be activated.</action> Also the time interval may be set. <guimenuitem>Aut<accel>o</accel>plot</guimenuitem> will be activated by refreshing.</para></listitem> </varlistentry> </variablelist> </para> </sect1> <sect1 id="settings-menu"> <title>The Settings Menu</title> <para> <variablelist> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Show <accel>T</accel>ool Bar</guimenuitem> </menuchoice></term> <listitem><para><action>This toggles the display of the tool bar. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Show St<accel>a</accel>tus Bar</guimenuitem> </menuchoice></term> <listitem><para><action>This toggles the display of the status bar. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>S<accel>h</accel>ow Function Source</guimenuitem> </menuchoice></term> <listitem><para><action>This toggles the display of the functions source files in the dialogs for function parameters</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Aut<accel>o</accel>plot</guimenuitem> </menuchoice></term> <listitem><para><action>This toggles the automatic display of the presentation after loading of data or plot files</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice><shortcut><keycap>Insert</keycap></shortcut> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Add <accel>F</accel>iles</guimenuitem> </menuchoice></term> <listitem><para><action>This toggles the adding of plot and data files to existing plots and overwriting, respectively. The current state of this setting is displayed on the status bar.</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Calculate <accel>P</accel>S Bounding Box </guimenuitem></menuchoice></term> <listitem><para><action>This toggles the automatic calculation of the bounding box for generated PostScript files.</action> The calculation needs <application>Ghostscript</application> to be installed and assumes that the <guilabel>Page format</guilabel> in the <link linkend="basic">Basic Settings</link> dialog is set sufficiently large to contain all parts of the plot. Without calculation the bounding box is set according to that page format.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Save Absol<accel>u</accel>te Paths </guimenuitem></menuchoice></term> <listitem><para><action>Tis toggles the saving of absolute or relative paths of data and library files in plot files.</action> When this option is set on, the paths always saved as absolute. This is the default setting, compatible with older versions of &kpl;. When the option is set off, the paths are saved as relative paths to that of the plot file, if possible. This allows to move directory branches containing the plot file and all files it depends on.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Unsaved Changes <accel>W</accel>arning </guimenuitem></menuchoice></term> <listitem><para><action>This toggles the display of warnings at unsaved changes.</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Save Settings At <accel>E</accel>nd </guimenuitem></menuchoice></term> <listitem><para><action>This toggles the saving of the current window size, the visibility of the dialog </action> <guilabel>Items</guilabel>, and the settings of the <guimenu><accel>S</accel>ettings</guimenu> menu at the program's ending. </para> <para>This setting itself also will be saved.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Save <accel>S</accel>ettings </guimenuitem></menuchoice></term> <listitem><para><action>This saves the current window size, the visibility of the dialog </action> <guilabel>Items</guilabel>, and the settings of the <guimenu><accel>S</accel>ettings</guimenu> menu.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Configure <accel>K</accel>ey Bindings </guimenuitem></menuchoice></term> <listitem><para><action>Opens the dialog </action> <guilabel>Configure key bindings</guilabel>, where the shortcuts for the &kpl; actions may be changed.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Configure Tool<accel>b</accel>ars </guimenuitem></menuchoice></term> <listitem><para><action>Opens the dialog </action> <guilabel>Configure Toolbars</guilabel>, where the actions of the toolbar may be changed.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Configure Bas<accel>i</accel>cs </guimenuitem></menuchoice></term> <listitem><para><action>Opens the dialog </action> <link linkend="basic">Basic Settings</link>, where the size of the presentation and the colors as well as the output format for function parameters may be preset.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem><accel>C</accel>onfigure Autoplot </guimenuitem></menuchoice></term> <listitem><para><action>Opens the dialog </action> <link linkend="autoplot">Autoplot Settings</link>, where the settings for the automatic scaling of data files loaded by command line parameter, by the file menu, or by drag and drop, are done.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Co<accel>n</accel>figure Autofit </guimenuitem></menuchoice></term> <listitem><para><action>Opens the dialog </action> <link linkend="autofit">Autofit Settings</link>, where the settings for the automatic parameter fittings of functions to data sets from files are performed.</para></listitem> </varlistentry> </variablelist> </para> </sect1> <sect1 id="help-menu"> <title>The Help Menu</title> <para> <variablelist> <varlistentry><term><menuchoice><shortcut><keycap>F1</keycap></shortcut> <guimenu><accel>H</accel>elp</guimenu><guimenuitem><accel>C</accel>ontents</guimenuitem> </menuchoice></term> <listitem><para><action>Here the contents page of the help for &kpl; is available. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>H</accel>elp</guimenu><guimenuitem><accel>A</accel>bout Kpl</guimenuitem> </menuchoice></term> <listitem><para><action>Displays essential information about &kpl;. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenu><accel>H</accel>elp</guimenu><guimenuitem>About <accel>K</accel>DE</guimenuitem> </menuchoice></term> <listitem><para><action>Displays essential information about KDE. </action></para></listitem> </varlistentry> </variablelist> </para> </sect1> <sect1 id="context-menu"> <title>The Context Menu</title> <para> Clicking the plot area with the right mouse button brings up a context menu with the most important actions:</para> <para> <variablelist> <varlistentry><term><menuchoice> <guimenuitem><accel>N</accel>ew</guimenuitem> </menuchoice></term> <listitem><para><action>Opens a new plot file.</action> </para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem><accel>O</accel>pen Plot File</guimenuitem> </menuchoice></term> <listitem><para><action>Opens one or more existing plot files.</action></para> </listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem>Open <accel>D</accel>ata File</guimenuitem> </menuchoice></term> <listitem><para><action>Opens one or more existing data files.</action></para> </listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem><accel>S</accel>ave</guimenuitem> </menuchoice></term> <listitem><para><action>Saves the current plot file. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem>Save <accel>A</accel>s</guimenuitem> </menuchoice></term> <listitem><para><action>Saves the current graphical presentation in a new plot file.</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem><accel>P</accel>rint</guimenuitem> </menuchoice></term> <listitem><para><action>Prints the graphical presentation.</action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guisubmenu>PostScript Outp<accel>u</accel>t</guisubmenu> </menuchoice></term> <listitem><para><action>Saves the graphical presentation as a PostScript file.</action></para> </listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem>I<accel></accel>tems</guimenuitem> </menuchoice></term> <listitem><para><action>Opens the dialog </action> <guilabel>Items</guilabel>.</para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem>Zoom <accel>I</accel>n</guimenuitem> </menuchoice></term> <listitem><para><action>Increases magnification by 20 %. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem>Zoom <accel>O</accel>ut</guimenuitem> </menuchoice></term> <listitem><para><action>Decreases magnification by 20 %. </action></para></listitem> </varlistentry> <varlistentry><term><menuchoice> <guimenuitem><accel>R</accel>edisplay</guimenuitem> </menuchoice></term> <listitem><para><action>Reloads the current file and refreshes the plot.</action></para></listitem> </varlistentry> </variablelist> </para> </sect1> <sect1 id="keybindings"> <title>Key Bindings</title> <para> Many of the key bindings (shortcuts) are configurable by way of the <link linkend="settings-menu">Settings</link> menu. By default &kpl; honors the following key bindings:</para> <informaltable pgwide="1"><tgroup cols="2"> <thead> <row> <entry>Key Binding</entry> <entry>Action</entry> </row> </thead> <tbody> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>N</keycap></keycombo></entry> <entry><action>Opens a new plot file.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo></entry> <entry><action>Opens an existing plot file.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>S</keycap></keycombo></entry> <entry><action>Saves the current plot file.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>W</keycap></keycombo></entry> <entry><action>Closes the current plot file.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>P</keycap></keycombo></entry> <entry><action>Prints the graphical presentation.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>Q</keycap></keycombo></entry> <entry><action>Quits &kpl;.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>Z</keycap></keycombo></entry> <entry><action>Reverses the last change of the plot.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>Shft</keycap> <keycap>Z</keycap></keycombo></entry> <entry><action>Reverses the last change of the plot made using </action> <guimenuitem>Undo</guimenuitem>.</entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>+</keycap></keycombo></entry> <entry><action>Increases magnification by 20 %. </action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>-</keycap></keycombo></entry> <entry><action>Decreases magnification by 20 %. </action></entry> </row> <row> <entry><keycombo><keycap>F5</keycap></keycombo></entry> <entry><action>Reloads the current file and refreshes the plot. </action></entry> </row> <row> <entry><keycombo><keycap>Insert</keycap></keycombo></entry> <entry><action>Toggles the adding of plot and data files to existing plots and overwriting, respectively. </action></entry> </row> <row> <entry><keycombo><keycap>F1</keycap></keycombo></entry> <entry><action>Displays the kpl help pages.</action></entry> </row> <row> <entry><keycombo><keysym>Left Arrow</keysym></keycombo></entry> <entry><action>Scrolls left.</action></entry> </row> <row> <entry><keycombo><keysym>Right Arrow</keysym></keycombo></entry> <entry><action>Scrolls left.</action></entry> </row> <row> <entry><keycombo><keysym>Down Arrow</keysym></keycombo></entry> <entry><action>Scrolls down.</action></entry> </row> <row> <entry><keycombo><keysym>Up Arrow</keysym></keycombo></entry> <entry><action>Scrolls up.</action></entry> </row> <row> <entry><keycombo><keycap>Page Up</keycap></keycombo></entry> <entry><action>Scrolls page up.</action></entry> </row> <row> <entry><keycombo><keycap>Page Down</keycap></keycombo></entry> <entry><action>Scrolls page down.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>Page Up</keycap> </keycombo></entry> <entry><action>Scrolls page left.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>Page Down</keycap> </keycombo></entry> <entry><action>Scrolls page right.</action></entry> </row> <row> <entry><keycombo><keycap>Home</keycap></keycombo></entry> <entry><action>Scrolls to bottom margin.</action></entry> </row> <row> <entry><keycombo><keycap>End</keycap></keycombo></entry> <entry><action>Scrolls to top margin.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>Home</keycap> </keycombo></entry> <entry><action>Scrolls to left margin.</action></entry> </row> <row> <entry><keycombo><keycap>Ctrl</keycap><keycap>End</keycap> </keycombo></entry> <entry><action>Scrolls to right margin.</action></entry> </row> </tbody> </tgroup> </informaltable> </sect1> <sect1 id="toolbar"> <title>Tool Bar</title> <para> The toolbar is are configurable by way of the <link linkend="settings-menu">Settings</link> menu. By default the &kpl; toolbar contains the following buttons:</para> <informaltable pgwide="1"><tgroup cols="2"> <thead> <row> <entry>Button</entry> <entry>Action</entry> </row> </thead> <tbody> <row> <entry>New</entry> <entry><action>Opens a new plot file.</action></entry> </row> <row> <entry>Open Plot File</entry> <entry><action>Opens an existing plot file.</action></entry> </row> <row> <entry>Open Data File</entry> <entry><action>Opens an existing data file.</action></entry> </row> <row> <entry>Save</entry> <entry><action>Saves the current plot file.</action></entry> </row> <row> <entry>Print</entry> <entry><action>Prints the graphical presentation.</action></entry> </row> <row> <entry>Undo</entry> <entry><action>Reverses the last change of the plot.</action></entry> </row> <row> <entry>Redo</entry> <entry><action>Reverses the last change of the plot made using </action> <guimenuitem>Undo</guimenuitem>.</entry> </row> <row> <entry>Zoom In</entry> <entry><action>Increases magnification by 20 %.</action></entry> </row> <row> <entry>Zoom Out</entry> <entry><action>Decreases magnification by 20 %.</action></entry> </row> <row> <entry>Reload</entry> <entry><action>Reloads the current file and refreshes the plot.</action></entry> </row> <row> <entry>Help</entry> <entry><action>Displays the &kpl; help pages.</action></entry> </row> </tbody> </tgroup> </informaltable> </sect1> </chapter> <chapter id="dialogs"> <title>The Dialogs</title> <sect1 id="items"> <title>Items</title> <anchor id="sec-items"/> <para> When items of the presentation already exist, they are listed in the dialog window. In case of a <guilabel>frame</guilabel>, a <guilabel>rectangle</guilabel>, or a <guilabel>ellipse</guilabel> its position and size is shown; in case of an <guilabel>array</guilabel> the name of the data file as well as the column indices of x and y values, in case of a <guilabel>function</guilabel> the names of the shared library and the function, in case of a <guilabel>parametric function</guilabel> the names of the shared libraries and the functions for x(t) and y(t), in case of a <guilabel>legend</guilabel> the number of the marker or line, and in case of a <guilabel>text</guilabel>, a <guilabel>line</guilabel>, or an <guilabel>arrow</guilabel> its position and direction. When the dialog is left open, it will reflect changes in the item list.</para> <para> In the tree view frames are displayed one hierarchical level higher than the other item types. Other items following a frame are to be plotted in that frame. The sequence of items belonging to a frame ends when another frame item follows. Items not belonging to a frame, that is, items not following a frame item, will be plotted without a frame. Function and data set values then will be interpreted as cms. The position of the selected item can be changed using the up and down arrow buttons left to the tree view.</para> <para> Each item is preceeded by a checkbox field, displaying its activation state. Activated items are shown in the plot, deactivated items are hidden. The state can be toggled by clicking the checkbox field with the left mouse button or by the item's context menu, which pops up when an item is clicked with the right mouse button. An item can be selected without changing its activation state by clicking it right of the checkbox field or by use of the cursor keys.</para> <para> For appending a new item to the list, the button <guibutton><accel>N</accel>ew</guibutton> opens the dialog <link linkend="newitem">New Item</link>, where the type of the item is to be chosen.</para> <para> The button <guibutton><accel>E</accel>dit</guibutton> opens the according dialog for the setting of the item selected from the list. Editing can also be selected from a context menu, which pops up when an item is clicked with the right mouse button. Finally the dialog for a selected item can be opened by use of the <keycap>Enter</keycap> key.</para> <para> The button <guibutton><accel>F</accel>it</guibutton> is used to open the dialog <link linkend="fit">Parameter fit</link> for performing a (multidimensional) parameter fit of the selected function(s) to the data set(s) of the selected array item(s). When the item list contains exactly one function and one array item, no multiselection is necessary and the dialog is just opened by clicking the button to perform a parameter fit in one dimension. Otherwise you first have to select an equal number of function items and array items. This can be done by holding down the <keycap>Ctrl</keycap> key when clicking the items to be selected. In case of multidimensional fits the first selected function item in the list corresponds to the first selected array item in the list and so on.</para> <para> By using the button <guibutton><accel>D</accel>elete</guibutton> the selected item(s) may be deleted. Deleting of an item can also be selected from its context menu.</para> <para> By using the button <guibutton><accel>C</accel>opy</guibutton> the selected item(s) may be copied to the end of the list. Copying of an item can also be selected from the its context menu.</para> <para> The dialog is closed by using the button <guibutton>C<accel>l</accel>ose</guibutton>. The dialog can be left open during work with &kpl;. </para> </sect1> <sect1 id="newitem"> <title>New Item</title> <para> The type of the new item may be chosen using the buttons <guibutton>Frame</guibutton>, <guibutton>Array</guibutton>, <guibutton>Function</guibutton>, <guibutton>Parametric Function</guibutton>, <guibutton>Legend</guibutton>, <guibutton>Text</guibutton>, <guibutton>Line</guibutton>, <guibutton>Arrow</guibutton>, <guibutton>Rectangle</guibutton>, and <guibutton>Ellipse</guibutton>.</para> <para> Scalable items like array or function items will inherit the normalization factors of the last preceeding scalable item belonging to the same frame, if existing.</para> <para> When the type is chosen, the according dialog for the settings of the new item is displayed.</para> <para> The dialog may be canceled without selection by use of the button <guibutton><accel>C</accel>ancel</guibutton>.</para> </sect1> <sect1 id="frame"> <title>Frame</title> <anchor id="sec-frame"/> <para> Here the settings for frame and labels may be performed.</para> <para> In the group <guilabel>Axis mode</guilabel> one can choose between only a frame around the data window or additional tick marks on the left and lower sides of the frame or a grid. Tick marks and grid may be labeled with numeric values.</para> <para> In the group <guilabel>Colors</guilabel> the colors for frame and ticks or grid are selected with the dialog Select Color, displayed by using the color buttons.</para> <para> The group <guilabel>Automatic</guilabel> allows convenient scaling of the presentation by using the button <guibutton>Autoscale</guibutton>, when arrays or functions are already set in subsequent items of the presentation. When <guilabel>Normalization</guilabel> is checked, at this time also powers of ten are evaluated to be multiplied with the numeric data values in case of huge or tiny numbers. If not equal to 1, these normalization factors are included in the axis labels.</para> <para> In the group <guilabel>Window</guilabel> position and size of the data window may be set.</para> <para> The group <guilabel>Scaling</guilabel> allows manual scaling of the presentation by specifying data values for the lower left and the upper right corner of the data window. The settings also may be performed by using the button <guibutton>Autoscale</guibutton>. The scaling can be set to logarithmic individually for the axes by checking <guilabel>log</guilabel>.</para> <para> The group <guilabel>Axes</guilabel> allows to specify the distances <guilabel>xtic</guilabel> and <guilabel>ytic</guilabel> of major tick marks or grid lines. In case of tick marks minor ticks may be drawn between the (labeled) major ticks. The number of intervals dividing the distance between the major ticks can be specified by <guilabel>mticx</guilabel> and <guilabel>mticy</guilabel>. For axes with numeric labels the number of digits behind the decimal point may be selected by <guilabel>ndigx</guilabel> and <guilabel>ndigy</guilabel>. Here values of -1 are used to suppress the output of the decimal point. The settings also may be performed by using the button <guibutton>Autoscale</guibutton>.</para> <para> For logarithmic scales the controls have a different meaning. <guilabel>ndigx</guilabel> and <guilabel>ndigy</guilabel> are disabled, the number of digits is determined automatically. The values of <guilabel>xtic</guilabel> and <guilabel>ytic</guilabel> give the factor between first and second major tick mark and will be rounded to 2, 5, or 10. Always ten minor tick marks per decade will be drawn when <guilabel>mticx</guilabel> and <guilabel>mticy</guilabel> are set larger than 1. In contrast to linear scales minor ticks will be shown as grid lines in case of grid axis modes. The normalization option for autoscaling will be deselected in case of logarithmic scales.</para> <para> In the group <guilabel>Labels</guilabel> text for the axis labels and a heading may be entered. Text with special characters is entered more conveniently in the dialog <link linkend="edit-text">Edit text</link> which shows up when using the buttons right to the entry fields. Powers of ten for normalization factors to be included in the axis labels may be specified manually by <guilabel>iex</guilabel> and <guilabel>iey</guilabel>. The placement of the x axis labels can be changed by checking <guilabel>Top</guilabel>, that of the y axis labels by checking <guilabel>Right</guilabel>.</para> <para> With <guilabel>Symbol size</guilabel> the relative size of characters and markers as well as the relative line widths (proportional to the width of the data window) may be specified. A setting of 100 % corresponds to default.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed. </para> </sect1> <sect1 id="array"> <title>Array</title> <anchor id="sec-array"/> <para> The dialog <guilabel>Array</guilabel> is used to perform the settings for a data set from a data file.</para> <para> The button <guibutton><accel>F</accel>ile</guibutton> is used to open a file selection dialog for selecting a data file. The path of the file is displayed right to the button. The button right to this field is used to reload a data file after changes of its contents. Selecting a file results in automatic determination of suitable values for the following settings.</para> <para> By checking <guilabel>Internal Data</guilabel> the array data can be saved within the plot file. For reasons of performance this should only done with data sets not to large. Only the columns selected for plotting will be stored. Internal data can be entered or changed by use of <guibutton><accel>E</accel>dit</guibutton>. After unchecking of <guilabel>Internal Data</guilabel> a file selection dialog will be opened to select a separate data file for (re)exporting.</para> <para> In <guilabel>x column</guilabel> and <guilabel>y column</guilabel> the file columns for abscissa and ordinate values may be chosen. 0 corresponds to the first column.</para> <para> When <guilabel>Error bar</guilabel> is checked the column chosen in <guilabel>Error column</guilabel> is used for displaying error bars. This column is also used in case of parameter fits of functions to the data sets for weighing the data points.</para> <para> The <guilabel>Start index</guilabel> is the row index for the first data point to be displayed. 0 corresponds to the first row of the data file, not counting comment lines. Together with the <guilabel>Number of points</guilabel> the displayed portion of the file is selected.</para> <para> Factors for <guilabel>x normalization</guilabel> and <guilabel>y normalization</guilabel> may be entered manually. These factors also may be determined automatically using <guibutton>Autoscale</guibutton> with checked <guilabel>Normalization</guilabel> in the dialog <link linkend="frame">Frame</link>.</para> <para> Markers (<guilabel>Symbol</guilabel> <= 0) or lines (<guilabel>Symbol</guilabel> > 0) may be chosen to present the data points. This is done most convenient using the dialog <guilabel>Lines and Markers</guilabel>, to be opened with the button right to the spin box, which shows the actual line or marker.</para> <para> The <guilabel>Color</guilabel> of lines or markers may be chosen using the dialog <guilabel>Select Color</guilabel>, opened with the colored button.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed. </para> </sect1> <sect1 id="func"> <title>Function</title> <anchor id="sec-func"/> <para> The dialog <guilabel>Function</guilabel> is used to perform the settings for function plots.</para> <para> In the field <guilabel>Library</guilabel> in the group <guilabel>y(x)</guilabel> the path of the shared library containing the function to be chosen may be entered. The button right to the entry field opens a file selection dialog for this purpose.</para> <para> The name of the <guilabel>Function</guilabel> is entered in another field. When in the same directory as for the shared library a module definition file with the same name but the extension <literal role="extension">.def</literal> is present, the function may be chosen from a list in the dialog <guilabel>Functions</guilabel>, opened with the button right to the entry field.</para> <para> With the button <guibutton>Edit</guibutton> a dialog <guilabel>Parameter</guilabel> may be opened, which allows to enter the values of up to 20 parameters of the function. When the option <guilabel>S<accel>h</accel>ow Function Source</guilabel> is activated in the Settings menu and a C or C++ language source file with the same name as the shared library with the extension <literal role="extension">.c</literal> or <literal role="extension">.cpp</literal>, respectively, is present in the same directory, its contents is displayed right to the parameter fields, too. The button <guibutton>Load</guibutton> opens a file selection dialog for loading the parameters from an ASCII file (one parameter each line). The button <guibutton>Save</guibutton> opens a file selection dialog for saving the parameters in an ASCII file.</para> <para> The limits for the function's argument are entered using the fields <guilabel>xmin</guilabel> and <guilabel>xmax</guilabel>. With <guilabel>Delta x</guilabel> the step length for the argument is set. A value of 0 results in automatically dividing the range from xmin to xmax into 100 intervals.</para> <para> Factors for <guilabel>x normalization</guilabel> and <guilabel>y normalization</guilabel> may be entered manually. These factors also may be determined automatically using <guibutton>Autoscale</guibutton> with checked <guilabel>Normalization</guilabel> in the dialog <link linkend="frame">Frame</link>.</para> <para> Markers (<guilabel>Symbol</guilabel> <= 0) or lines (<guilabel>Symbol</guilabel> > 0) may be chosen to present the function. This is done most convenient using the dialog <guilabel>Lines and Markers</guilabel>, to be opened with the button right to the spin box, which shows the actual line or marker.</para> <para> The <guilabel>Color</guilabel> of lines or markers may be chosen using the dialog <guilabel>Select Color</guilabel>, opened with the colored button.</para> <para> A function value table may be exported as a data file by use of the button <guibutton><accel>E</accel>xport</guibutton>. A file selection dialog will be opened for this purpose.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed. </para> </sect1> <sect1 id="parfunc"> <title>Parametric function</title> <anchor id="sec-parfunc"/> <para> The dialog <guilabel>Parametric function</guilabel> is used to perform the settings for plots of parametric functions.</para> <para> In the groups <guilabel>x(t)</guilabel> and <guilabel>y(t)</guilabel> the setting for the abscissa an the ordinate function may be performed in the same way.</para> <para> In the fields <guilabel>Library</guilabel> the paths of the shared libraries containing the functions to be chosen may be entered. The buttons right to the entry fields open file selection dialogs for this purpose.</para> <para> The names of the <guilabel>Functions</guilabel> for x(t) and y(t) are entered in the corresponding fields. When in the same directories as for the shared libraries module definition files with the same names but the extension <literal role="extension">.def</literal> are present, the functions may be chosen from a list in the dialog <guilabel>Functions</guilabel>, opened with the buttons right to the entry fields.</para> <para> With the buttons <guibutton>Edit</guibutton> a dialog <guilabel>Parameter</guilabel> may be opened, which allows to enter the values of up to 20 parameters of the functions. When the option <guilabel>S<accel>h</accel>ow Function Source</guilabel> is activated in the Settings menu and a C or C++ language source file with the same name as the shared library with the extension <literal role="extension">.c</literal> or <literal role="extension">.cpp</literal>, respectively, is present in the same directory, its contents is displayed right to the parameter fields, too. The buttons <guibutton>Load</guibutton> open a file selection dialog for loading the parameters from an ASCII file (one parameter each line). The buttons <guibutton>Save</guibutton> open a file selection dialog for saving the parameters in an ASCII file.</para> <para> The limits for the function's common argument t are entered using the fields <guilabel>tmin</guilabel> and <guilabel>tmax</guilabel>. With <guilabel>Delta t</guilabel> the step length for the argument is set. A value of 0 results in automatically dividing the range from tmin to tmax into 100 intervals.</para> <para> Factors for <guilabel>x normalization</guilabel> and <guilabel>y normalization</guilabel> may be entered manually. These factors also may be determined automatically using <guibutton>Autoscale</guibutton> with checked <guilabel>Normalization</guilabel> in the dialog <link linkend="frame">Frame</link>.</para> <para> Markers (<guilabel>Symbol</guilabel> <= 0) or lines (<guilabel>Symbol</guilabel> > 0) may be chosen to present thefunctions. This is done most convenient using the dialog <guilabel>Lines and Markers</guilabel>, to be opened with the button right to the spin box, which shows the actual line or marker.</para> <para> The <guilabel>Color</guilabel> of lines or markers may be chosen using the dialog <guilabel>Select Color</guilabel>, opened with the colored button.</para> <para> A function value table may be exported as a data file by use of the button <guibutton><accel>E</accel>xport</guibutton>. A file selection dialog will be opened for this purpose.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed. </para> </sect1> <sect1 id="legend"> <title>Legend</title> <anchor id="sec-legend"/> <para> The dialog <guilabel>Legend</guilabel> is used to perform the settings for the explanation of line types and symbols as well as for additional labels.</para> <para> In the group <guilabel>Data</guilabel> a <guilabel>Symbol</guilabel> to be explained is selected. This is done most convenient using the dialog <guilabel>Lines and Markers</guilabel>, opened using the button right to the spin box, which shows the actual line or marker. The symbol number -17 may be chosen to draw labels without markers or lines. The <guilabel>Color</guilabel> of lines and markers is selected in the dialog <guilabel>Select Color</guilabel>, opened with the colored button. With <guilabel>x</guilabel> and <guilabel>y</guilabel> the position with respect to the lower left corner of the window may be set.</para> <para> In the group <guilabel>Label</guilabel> the <guilabel>Text</guilabel> may be entered. Text with special characters is entered most conveniently using the dialog <link linkend="edit-text">Edit text</link>, opened using the button right to the entry field. With <guilabel>Size</guilabel> the relative size of the characters may be set. A setting of 100 % corresponds to a normal value. The <guilabel>Color</guilabel> of the text label is selected in the dialog <guilabel>Select Color</guilabel>, opened with the colored button. With <guilabel>xoff</guilabel> and <guilabel>yoff</guilabel> the position of the text with respect to that of the symbol may be entered.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed.</para> </sect1> <sect1 id="text"> <title>Text</title> <anchor id="sec-text"/> <para> The dialog <guilabel>Text</guilabel> is used to perform the settings for a text to decorate the plot.</para> <para> The <guilabel>Text</guilabel> may be entered in the corresponding entry field. Text with special characters is entered most conveniently using the dialog <link linkend="edit-text">Edit text</link>, opened using the button right to the entry field. The <guilabel>Direction</guilabel> of the text can be entered in degrees. The <guilabel>Alignment</guilabel> of the text with respect to the position may be chosen to be left, centered, or right. With <guilabel>x</guilabel> and <guilabel>y</guilabel> the position of the text may be set in cm.</para> <para> With <guilabel>Size</guilabel> the relative size of the characters may be set. A setting of 100 % corresponds to a normal value. The <guilabel>Color</guilabel> of the line is selected in the dialog <guilabel>Select Color</guilabel>, opened with the colored button.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed.</para> </sect1> <sect1 id="line"> <title>Line</title> <anchor id="sec-line"/> <para> The dialog <guilabel>Line</guilabel> is used to perform the settings for a line to decorate the plot.</para> <para> The <guilabel>Direction</guilabel> of the line can be entered in degrees. With <guilabel>Length</guilabel> the length is set in cm. With <guilabel>x</guilabel> and <guilabel>y</guilabel> the start position of the line may be set.</para> <para> With <guilabel>Width</guilabel> the relative width of the line may be set. A setting of 100 % corresponds to a normal value. The <guilabel>Color</guilabel> of the line is selected in the dialog <guilabel>Select Color</guilabel>, opened with the colored button.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed.</para> </sect1> <sect1 id="arrow"> <title>Arrow</title> <anchor id="sec-arrow"/> <para> The dialog <guilabel>Arrow</guilabel> is used to perform the settings for an arrow to decorate the plot.</para> <para> The <guilabel>Direction</guilabel> of the arrow can be entered in degrees. With <guilabel>Length</guilabel> the total length is set in cm. With <guilabel>x</guilabel> and <guilabel>y</guilabel> the position of the arrow head may be set.</para> <para> With <guilabel>Size</guilabel> the relative size of the arrow head may be set. A setting of 100 % corresponds to a normal value. The <guilabel>Color</guilabel> of the arrow is selected in the dialog <guilabel>Select Color</guilabel>, opened with the colored button.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed.</para> </sect1> <sect1 id="rect"> <title>Rectangle</title> <anchor id="sec-rect"/> <para> The dialog <guilabel>Rectangle</guilabel> is used to perform the settings for a rectangle to decorate the plot.</para> <para> The <guilabel>Width</guilabel> and <guilabel>Height</guilabel> of the rectangle can be entered in cm. With <guilabel>x</guilabel> and <guilabel>y</guilabel> the position of the left bottom point of the rectangle may be set.</para> <para> With <guilabel>Line width</guilabel> the relative width of the line to draw the rectangle may be set. A setting of 100 % corresponds to a normal value. The <guilabel>Color</guilabel> of the rectangle is selected in the dialog <guilabel>Select Color</guilabel>, opened with the colored button. The rectangle is filled with the color if <guilabel>Filled</guilabel> is checked.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed.</para> </sect1> <sect1 id="ellipse"> <title>Ellipse</title> <anchor id="sec-ellipse"/> <para> The dialog <guilabel>Ellipse</guilabel> is used to perform the settings for a ellipse to decorate the plot.</para> <para> The <guilabel>Width</guilabel> and <guilabel>Height</guilabel> of the ellipse can be entered in cm. With <guilabel>x</guilabel> and <guilabel>y</guilabel> the position of the center may be set.</para> <para> With <guilabel>Line width</guilabel> the relative width of the line to draw the ellipse may be set. A setting of 100 % corresponds to a normal value. The <guilabel>Color</guilabel> of the ellipse is selected in the dialog <guilabel>Select Color</guilabel>, opened with the colored button. The ellipse is filled with the color if <guilabel>Filled</guilabel> is checked.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed.</para> </sect1> <sect1 id="fit"> <title>Parameter fit</title> <anchor id="sec-fit"/> <para> The dialog <guilabel>Parameter fit</guilabel> is used to perform parameter fits of one function (or more functions depending on the same set of parameters in case of multidimensional fits) to the same number of data sets. The dialog is shown either when <guibutton><accel>F</accel>it</guibutton> is selected in the dialog <link linkend="items">Items</link>, or when a data file is loaded and the options <guilabel>Autofit</guilabel> in the dialog <link linkend="autoplot">Autoplot settings</link> and <guilabel>Show dialog</guilabel> in the dialog <link linkend="autofit">Autofit settings</link> both are activated.</para> <para> Initial values for the parameters may be entered in the corresponding fields. When the dialog is opened, the fields are initialized with the current parameter set of the function (in case of multidimensional fits with that of the first function in the list of selected functions). By checking the boxes left to the entry fields the parameters are chosen to be fitted, otherwise their values are kept constant. In case of general linear least square fits no initial values need to be entered for the parameters chosen to be fitted. The estimated standard deviations of the parameter are displayed right to the corresponding entry fields.</para> <para> The buttons <guibutton>Load</guibutton> and <guibutton>Save</guibutton> are used to load and save the current parameter set from or to text files, respectively. Differing to the format used in the other parameter setting dialogs, here a second column containing the estimated standard deviations of the parameters is saved, too.</para> <para> When the box <guilabel>Nonlinear fit</guilabel> is checked, nonlinear parameter fits by employing the iterative Levenberg-Marquardt method will be performed. Otherwise noniterative general linear least square parameter fits are selected. In this case the function must depend linearly on all parameters chosen to be fitted.</para> <para> In the group <guilabel>Data errors</guilabel> the settings for weighing the data points may be formed. The selected <guilabel>Array</guilabel> for which the settings are performed is shown by its filename and the column indices for x, y, and errors. In case of multidimensional fits the array can be selected with a spin box showing its index within the list of arrays. Then the settings can be performed individually for each array.</para> <anchor id="errormodel"/> <para> When the box <guilabel>Error column</guilabel> is checked, the corresponding column of the data set, selected in the dialog <guilabel>Array</guilabel>, is used as the standard deviation of the y values for calculation of chi-square. Otherwise the standard deviation will be estimated by an error model function taking the y value as its argument. This function and their parameters may be selected in a dialog which is displayed by clicking <guibutton>Model</guibutton>. A simple error model might be selected by choosing a polynomial with p1 = 0.01, resulting in standard deviations of 1 %.</para> <para> Termination of the iterative nonlinear parameter fit algorithm may be controlled by setting a <guilabel>Maximum iterations</guilabel> number and a <guilabel>Tolerance</guilabel> value. Fitting is terminated when either the maximum number of iterations is reached or the relative errors of chi-square or of the parameters have decreased down to the tolerance value.</para> <para> The fit is started by clicking the <guibutton><accel>S</accel>tart</guibutton> button. Progress of the chi-square values during the iterations is displayed in the listbox in the lower part of the dialog. Fitting can be terminated by use of the button <guibutton><accel>C</accel>ancel</guibutton>. At the end the termination reason is displayed as well as the average deviation of the y values, the number of the degrees of freedom ny, and the significance Q, giving the probability that chi-square should exceed the achieved value. The matrix of the resulting parameter correlation coefficients is displayed by use of the button <guibutton>Correlations</guibutton>.</para> <para> The residuals of the fit (the differences between data and function values) can be plotted graphically by use of the button <guibutton><accel>R</accel>esiduals</guibutton>. The plot displayed in a new window then can be printed and saved as a new plot file with the residual data stored internally.</para> <para> The dialog may be canceled without saving the parameters by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> the parameters are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> the parameters are saved and the dialog is closed. In case of multidimensional fits then the parameters of each selected function will be actualized. </para> </sect1> <sect1 id="edit-text"> <title>Edit text</title> <para> The dialog <guilabel>Edit text</guilabel> is used to enter a text containing superscripts, subscripts, and characters of different fonts.</para> <para> The selection of a <guilabel>Font</guilabel> and a <guilabel>Position</guilabel> is determined by a control sequence starting with the character <keycap>#</keycap> and containing two additional characters in the field located right to the button with the symbol <. Using this button inserts the control sequence (or another string, entered manually) at the cursor position to the current text in the field left to the button. Text may be inserted manually at any position in the field. The resulting view is shown immediately in a window above the input field.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed. </para> </sect1> <sect1 id="basic"> <title>Basic settings</title> <anchor id="sec-basic"/> <para> The dialog <guilabel>Basic settings</guilabel> is used to perform the presettings for size and colors of the graphical presentation.</para> <para> In the group <guilabel>Page format</guilabel> the <guilabel>Width</guilabel> and <guilabel>Height</guilabel> of the page can be set. For convenient setting of the standard sizes <guibutton>Portrait A4</guibutton> and <guibutton>Landscape A4</guibutton> two buttons are available.</para> <para> In the group <guilabel>Default colors</guilabel> the preselections of the colors for <guilabel>Frame</guilabel>, <guilabel>Grid</guilabel>, and <guilabel>Data</guilabel> may be performed. Selection is done in the dialog <guilabel>Select Color</guilabel>, opened with the colored buttons.</para> <para> In the group <guilabel>Output format</guilabel> the double value <guilabel>Presentation</guilabel> and the <guilabel>Precision</guilabel> for function parameters in output files and dialogs may be set, corresponding to the format identifier of the C function <function>printf()</function>. The separator char used to separate columns in exported data files can be selected using the combobox <guilabel>Separator</guilabel>. Space, tab or comma characters may be selected. </para> </sect1> <sect1 id="autoplot"> <title>Autoplot settings</title> <anchor id="sec-autoplot"/> <para> The dialog <guilabel>Autoplot settings</guilabel> is used to perform the settings for automatic scaling of data files loaded by command line parameters, file menu, or by drag and drop.</para> <para> In the group <guilabel>Axis mode</guilabel> one can choose between only a frame around the data window or additional tick marks on the left and lower sides of the frame or a grid. tick marks and grid may be labeled with numeric values.</para> <para> In the group <guilabel>Window</guilabel> position and size of the data window may be set.</para> <para> In the group <guilabel>Labels</guilabel> text for the axis labels and a heading may be entered. Text with special characters is entered most conveniently in the dialog <link linkend="edit-text">Edit text</link> which shows up when using the buttons right to the entry fields. By checking <guilabel>= path</guilabel> the path of the data files is used as the heading label.</para> <para> In the group <guilabel>Data</guilabel> the file columns for abscissa and ordinate values may be chosen by <guilabel>x column</guilabel> and <guilabel>y column</guilabel>. 0 corresponds to the first column. Logarithmic scaling can be selected individually by checking <guilabel>log</guilabel>. When <guilabel>Error bar</guilabel> is checked, the column chosen in <guilabel>Error column</guilabel> is used for displaying error bars. Data may be presented by markers (<guilabel>Symbol</guilabel> <= 0) or lines (<guilabel>Symbol</guilabel> > 0). Most conveniently this is selected in the dialog <guilabel>Lines and Markers</guilabel>, opened by the button right to the spin box, which shows the actual line or marker. When <guilabel>Normalization</guilabel> is checked, powers of ten are evaluated to be multiplied with the numeric data values in case of huge or tiny numbers. If not equal to 1, these normalization factors are included in the axis labels.</para> <para> When <guilabel>Autofit</guilabel> is checked, an automatic parameter fit will be performed after loading the data file, corresponding to the settings performed in the <guilabel>Autofit settings</guilabel> dialog.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. By using <guibutton><accel>A</accel>pply</guibutton> changes are saved without closing the dialog. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed. </para> </sect1> <sect1 id="autofit"> <title>Autofit settings</title> <anchor id="sec-autofit"/> <para> The dialog <guilabel>Autofit settings</guilabel> is used to perform the settings for automatic parameter fits of functions to data sets, which are combined with the autoplot feature when the option <guilabel>Autofit</guilabel> is activated in the <guilabel>Autoplot settings</guilabel> dialog.</para> <para> In the <guilabel>Library</guilabel> field in the group <guilabel>y(x)</guilabel> the path of the shared library containing the function to be fitted may be entered. The button right to the entry field opens a file selection dialog for this purpose.</para> <para> The name of the <guilabel>Function</guilabel> is entered in another field. When in the same directory as for the shared library a module definition file with the same name but the extension <literal role="extension">.def</literal> is present, the function may be chosen from a list in the dialog <guilabel>Functions</guilabel>, opened with the button right to the entry field.</para> <para> With the button <guibutton>Edit</guibutton> a dialog <guilabel>Parameter</guilabel> may be opened, which allows to enter the values of up to 20 initial parameters of the function. Also the parameters which should be fitted and not kept constant may be selected by checkboxes. When the option <guilabel>S<accel>h</accel>ow Function Source</guilabel> is activated in the Settings menu and a C or C++ language source file with the same name as the shared library but the extension <literal role="extension">.c</literal> or <literal role="extension">.cpp</literal>, respectively, is present in the same directory, its contents is displayed right to the parameter fields, too. The button <guibutton>Load</guibutton> opens a file selection dialog for loading the parameters from an ASCII file (one parameter each line). The button <guibutton>Save</guibutton> opens a file selection dialog for saving the parameters in an ASCII file.</para> <para> When the box <guilabel>Nonlinear fit</guilabel> is checked, nonlinear parameter fits by employing the iterative Levenberg-Marquardt method will be performed. Otherwise noniterative general linear least square parameter fits are selected. In this case the function must depend linearly on all parameters chosen to be fitted.</para> <para> When the box <guilabel>Error column</guilabel> is checked, the corresponding column of the data set, selected in the dialog <guilabel>Array</guilabel>, will be used as the standard deviation of the y values for calculation of chi-square. Otherwise the standard deviation will be estimated by an error model function taking the y value as its argument. This function and their parameters may be selected in a dialog which is displayed by clicking <guibutton>Model</guibutton>. A simple error model might be selected by choosing a polynomial with p1 = 0.01, resulting in standard deviations of 1 %.</para> <para> Termination of the iterative nonlinear parameter fit algorithm may be controlled by setting a <guilabel>Maximum iterations</guilabel> number and a <guilabel>Tolerance</guilabel> value. Fitting will be terminated when either the maximum number of iterations is reached or the relative errors of chi-square or of the parameters have decreased down to the tolerance value.</para> <para> Markers (<guilabel>Symbol</guilabel> <= 0) or lines (<guilabel>Symbol</guilabel> > 0) may be chosen to present the fitted function. This is done most convenient using the dialog <guilabel>Lines and Markers</guilabel>, to be opened with the button right to the spin box, which shows the actual line or marker.</para> <para> The <guilabel>Color</guilabel> of lines or markers may be chosen using the dialog <guilabel>Select Color</guilabel>, opened with the colored button.</para> <para> When <guilabel>Show dialog</guilabel> is active, the dialog <link linkend="fit">Parameter fit</link> is shown when performing the fit, allowing monitoring and interaction.</para> <para> The resulting parameter settings will be saved automatically on disk, when the option <guilabel>Save parameters</guilabel> is active. The filename is derived from the name of the data file. The extension is set to <filename>.par</filename>.</para> <para> When <guilabel>Follow parameters</guilabel> is active, the set of initial parameters will not be reset before starting a fit to the next data set of a series of data files.</para> <para> The dialog may be canceled without saving by use of the button <guibutton><accel>C</accel>ancel</guibutton>. With <guibutton><accel>O</accel>K</guibutton> changes are saved and the dialog is closed. </para> </sect1> </chapter> <chapter id="developers"> <title>Developer's Guide to Kpl</title> <sect1 id="functions"> <title>Functions</title> <para> User defined C or C++ functions for graphical presentation of ordinary and parametric functions and for parameter fits are used by &kpl; as shared libraries. These functions return <type>double</type> values and expect a <type>double</type> function argument and a pointer to a <type>double</type> array of up to 20 parameters:</para> <programlisting> double myfunction(double x, const double *p);</programlisting> <para> Module definition files (of the type <literal role="extension">.def</literal> and the same name as source and library files) are used as a lookup table by &kpl;. They correspond to the output of the program <command>nm</command>.</para> <para> In the directory $<envar>KDEDIR</envar><filename>/share/apps/kpl</filename> a shared library <filename>fkt.so</filename> as well as the source file <filename>fkt.c</filename>, the module definition file <filename>fkt.def</filename>, and a make file <filename>Makefile.fkt</filename> are already installed. The files <filename>fkt.c</filename> and <filename>Makefile.fkt</filename> may be used as examples and have to be customized in this case.</para> <para> As an example for multidimensional parameter fits, a C++ source file <filename>fcompl.cpp</filename> as well as the corresponding files <filename>fcompl.so</filename>, <filename>fcompl.def</filename>, and <filename>Makefile.fcompl</filename> are provided in the same directory. Here two <type>double</type> valued functions make use of the real and imaginary part of a complex function, implemented with the class <classname>complex</classname>.</para> </sect1> <sect1 id="dcop"> <title>DCOP Interface</title> <para> The <acronym>DCOP</acronym> interface allows to control &kpl; by other KDE applications and scripts.</para> <para> For a KDE application which should make use of the <acronym>DCOP</acronym> interface of &kpl; you should include the header file <filename>kpl_stub.h</filename>, which is installed in the directory $<envar>KDEDIR</envar><filename>/include</filename>. You also need to compile the file <filename>kpl_stub.cpp</filename> in $<envar>KDEDIR</envar><filename>/share/apps/kpl</filename> and link it to your application. These two files provide the <acronym>DCOP</acronym> interface functions of &kpl; as methods of the class <classname>KplApp_stub</classname>. A C++ example <filename>demo1.cpp</filename> which makes use of them is installed in $<envar>KDEDIR</envar><filename>/share/apps/kpl</filename>.</para> <para> The KDE XmlRpc Daemon (<command>kxmlrpcd</command>) provides a way to use the <acronym>DCOP</acronym> interface of &kpl; from scripts written in several languages by remote procedure calls (RPC) with XML and HTTP, even running on another platform. An example <filename>demo1.py</filename> written in Python is installed in $<envar>KDEDIR</envar><filename>/share/apps/kpl</filename>. It essentially does the same as the C++ example. To run it, you need to unzip the Python XML-RPC library <ulink url="http://www.pythonware.com/downloads/xmlrpc-0.9.8-990621.zip"> http://www.pythonware.com/downloads/xmlrpc-0.9.8-990621.zip</ulink> into your Python directory (<filename>/usr/lib/python2.0</filename>, for instance). Note that the authentification mechanism of <command>kxmlrpcd</command> needs the authentification string as the very first parameter of each interface function call.</para> <para> Unfortunately on several installations the XmlRpc Daemon of KDE 2.2.1 still fails resulting in errors due to uncomplete remote procedure calls, when more than 1 Kbytes have to be transferred. This will happen when using functions with very long parameter lists like <function>newFrameItem()</function> (see below). As a workaround, until the problem is fixed in a more profound way, you can apply a patch to the source code of kxmlrpcd. The patch file named kxmlrpcserver-patch is installed in $<envar>KDEDIR</envar><filename>/share/apps/kpl</filename>. It simply increases the size of a buffer from 1 K to 4 K. You will have to unpack the source package of kdebase-2.1.1 (available on <ulink url="ftp://ftp.kde.org/pub/kde/">ftp://ftp.kde.org/pub/kde/</ulink>) and to apply the patch in the directory <filename>kdebase-2.2.1/kxmlrpc</filename> by running <screen width="40"> <prompt>%</prompt> <userinput>patch -p0 < kxmlrpcserver-patch</userinput> </screen></para> <para> After that you should run <screen width="40"> <prompt>%</prompt> <userinput>./configure</userinput> </screen></para> <para> in the directory <filename>kdebase-2.2.1</filename> and (at least in the directory <filename>kdebase-2.2.1/kxmlrpc</filename>) <screen width="40"> <prompt>%</prompt> <userinput>make</userinput> </screen></para> <para> and (as root) <screen width="40"> <prompt>%</prompt> <userinput>make install</userinput> </screen></para> <para> The patched version of kxmlrpc then will be active when you login next time.</para> <para> To test the <acronym>DCOP</acronym> interface of &kpl; you also can use the KDE <acronym>DCOP</acronym> utilities <command>dcop</command> (command line) and <command>kdcop</command> (GUI).</para> <para> The <acronym>DCOP</acronym> interface of &kpl; provides the following functions:</para> <sect2> <title>newPlot</title> <synopsis> void newPlot(); </synopsis> <para> Erases the current plot. </para> </sect2> <sect2> <title>openPlot</title> <synopsis> int openPlot(const QString& <replaceable class="parameter">url</replaceable>); </synopsis> <para>Opens a plot file.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">url</replaceable> </term> <listitem><para>URL of the file. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>openData</title> <synopsis> int openData(const QString& <replaceable class="parameter">url</replaceable>); </synopsis> <para>Opens a data file.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">url</replaceable> </term> <listitem><para>URL of the file. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>doPlot</title> <synopsis> void doPlot(); </synopsis> <para>Performs plot.</para> </sect2> <sect2> <title>savePlot</title> <synopsis> int savePlot(const QString& <replaceable class="parameter">url</replaceable>); </synopsis> <para>Saves a plot file.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">url</replaceable> </term> <listitem><para>URL of the file. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>savePS</title> <synopsis> int savePS(const QString& <replaceable class="parameter">url</replaceable>, int <replaceable class="parameter">landscape</replaceable>); </synopsis> <para>Generates a PostScript file.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">url</replaceable> </term> <listitem><para>URL of the file. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">landscape</replaceable> </term> <listitem><para>true for landscape orientation. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>printPlot</title> <synopsis> int printPlot(const QString& <replaceable class="parameter">printerName</replaceable>, const QString& <replaceable class="parameter">fileName</replaceable>, int <replaceable class="parameter">landscape</replaceable>, int <replaceable class="parameter">numCopies</replaceable>); </synopsis> <para>Prints current plot.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">printerName</replaceable> </term> <listitem><para>name of the printer. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">fileName</replaceable> </term> <listitem><para>name of the output file (empty for output to printer). </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">landscape</replaceable> </term> <listitem><para>true for landscape orientation. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">numCopies</replaceable> </term> <listitem><para>number of copies. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>setAutoplotOption</title> <synopsis> void setAutoplotOption(int <replaceable class="parameter">setting</replaceable>); </synopsis> <para>Sets autoplot option.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">setting</replaceable> </term> <listitem><para>true to plot automatically after changes. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>setAddFilesOption</title> <synopsis> void setAddFilesOption(int <replaceable class="parameter">setting</replaceable>); </synopsis> <para>Sets add files option.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">setting</replaceable> </term> <listitem><para>true to add plot and data files to existing plots. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>setPathOption</title> <synopsis> void setPathOption(int <replaceable class="parameter">setting</replaceable>); </synopsis> <para>Sets path saving option.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">setting</replaceable> </term> <listitem><para>true to save absolute paths. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>setBoundingBoxOption</title> <synopsis> void setBoundingBoxOption(int <replaceable class="parameter">setting</replaceable>); </synopsis> <para>Sets calculate PS bounding box option.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">setting</replaceable> </term> <listitem><para>true to calculate automatically the box. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>setPageFormat</title> <synopsis> void setPageFormat(double <replaceable class="parameter">w</replaceable>, double <replaceable class="parameter">h</replaceable>); </synopsis> <para>Sets page size.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">w</replaceable> </term> <listitem><para>width in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">h</replaceable> </term> <listitem><para>height in cm. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>setColors</title> <synopsis> void setColors(const QString& <replaceable class="parameter">colFrame</replaceable>, const QString& <replaceable class="parameter">colGrid</replaceable>, const QString& <replaceable class="parameter">colData</replaceable>); </synopsis> <para>Sets default colors (hex-encoded RGB strings, example: "ff" for red).</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">colFrame</replaceable> </term> <listitem><para>color for frame and labels. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">colGrid</replaceable> </term> <listitem><para>color for ticks and grid lines. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">colData</replaceable> </term> <listitem><para>color for lines and markers. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>setOutputFormat</title> <synopsis> void setOutputFormat(const QString& <replaceable class="parameter">pres</replaceable>, int <replaceable class="parameter">prec</replaceable>); </synopsis> <para>Sets format for numeric output.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">pres</replaceable> </term> <listitem><para><function>printf()</function> presentation character. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">prec</replaceable> </term> <listitem><para>precision. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>setAutoplot</title> <synopsis> void setAutoplot(double <replaceable class="parameter">x0</replaceable>, double <replaceable class="parameter">w</replaceable>, double <replaceable class="parameter">y0</replaceable>, double <replaceable class="parameter">h</replaceable>, int <replaceable class="parameter">gridmode</replaceable>, const QString& <replaceable class="parameter">sx</replaceable>, const QString& <replaceable class="parameter">sy</replaceable>, const QString& <replaceable class="parameter">sh</replaceable>, int <replaceable class="parameter">pathHeading</replaceable>, int <replaceable class="parameter">ix</replaceable>, int <replaceable class="parameter">iy</replaceable>, int <replaceable class="parameter">ie</replaceable>, int <replaceable class="parameter">logx</replaceable>, int <replaceable class="parameter">logy</replaceable>, int <replaceable class="parameter">errbars</replaceable>, int <replaceable class="parameter">symb</replaceable>, int <replaceable class="parameter">autoNorm</replaceable>, int <replaceable class="parameter">autoFit</replaceable>); </synopsis> <para>Sets Autoplot options.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">x0</replaceable> </term> <listitem><para>left page margin in centimeters. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">w</replaceable> </term> <listitem><para>width of the data window in centimeters. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">y0</replaceable> </term> <listitem><para>bottom page margin in centimeters. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">h</replaceable> </term> <listitem><para>height of the data window in centimeters. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">gridmode</replaceable> </term> <listitem><para>0 for frame only, 1 for axes with tics, 2 for axes with tics and labels, 3 for grid, 4 for grid with labels. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">sx</replaceable> </term> <listitem><para>x axis text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">sy</replaceable> </term> <listitem><para>y axis text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">sh</replaceable> </term> <listitem><para>heading text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">pathHeading</replaceable> </term> <listitem><para>true for heading = path. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ix</replaceable> </term> <listitem><para>x column index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">iy</replaceable> </term> <listitem><para>y column index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ie</replaceable> </term> <listitem><para>y error column index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">logx</replaceable> </term> <listitem><para>true for logarithmic scaling of x axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">logy</replaceable> </term> <listitem><para>true for logarithmic scaling of y axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">errbars</replaceable> </term> <listitem><para>true to plot error bars. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">symb</replaceable> </term> <listitem><para>0 for circles, < 0 for different markers, > 0 for different line types. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">autoNorm</replaceable> </term> <listitem><para>true for automatic normalization. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">autoFit</replaceable> </term> <listitem><para>true for automatic parameter fit. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>setAutofit</title> <synopsis> void setAutofit(const QString& <replaceable class="parameter">path</replaceable>, const QString& <replaceable class="parameter">name</replaceable>, int <replaceable class="parameter">nonLin</replaceable>, int <replaceable class="parameter">errCol</replaceable>, const QString& <replaceable class="parameter">errModPath</replaceable>, const QString& <replaceable class="parameter">errModName</replaceable>, int <replaceable class="parameter">itMax</replaceable>, double <replaceable class="parameter">tol</replaceable>, int <replaceable class="parameter">symb</replaceable>, const QString& <replaceable class="parameter">color</replaceable>, int <replaceable class="parameter">showDlg</replaceable>, int <replaceable class="parameter">savePar</replaceable>, int <replaceable class="parameter">follow</replaceable>); </synopsis> <para>Sets Autofit parameters.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">path</replaceable> </term> <listitem><para>absolute path of the library for the fit function. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">name</replaceable> </term> <listitem><para>fit function name. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">nonLin</replaceable> </term> <listitem><para>true for nonlinear parameter fits. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">errCol</replaceable> </term> <listitem><para>true for data weighing by error column, false for weighing by error model function. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">errModPath</replaceable> </term> <listitem><para>absolute path of the library for the error model function. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">errModName</replaceable> </term> <listitem><para>error model function name. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">itMax</replaceable> </term> <listitem><para>maximum number of iterations (nonlinear fits only). </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">tol</replaceable> </term> <listitem><para>tolerance level (nonlinear fits only). </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">symb</replaceable> </term> <listitem><para>function plot: 0 for circles, < 0 for different markers, > 0 for different line types. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">color</replaceable> </term> <listitem><para>color for function plot. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">showDlg</replaceable> </term> <listitem><para>true to display parameter fit dialog. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">savePar</replaceable> </term> <listitem><para>true to save resulting parameter files. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">follow</replaceable> </term> <listitem><para>true to follow parameter sets in fit series. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>loadAutofitPar</title> <synopsis> int loadAutofitPar(const QString& <replaceable class="parameter">url</replaceable>); </synopsis> <para>Loads Autofit function parameters from file.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">url</replaceable> </term> <listitem><para>URL of the file. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>setAutofitPar</title> <synopsis> int setAutofitPar(int <replaceable class="parameter">iPar</replaceable>, double <replaceable class="parameter">value</replaceable>); </synopsis> <para>Sets Autofit function parameter value.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">iPar</replaceable> </term> <listitem><para>parameter index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">value</replaceable> </term> <listitem><para>parameter value. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>enableFitPar</title> <synopsis> int enableFitPar(int <replaceable class="parameter">iPar</replaceable>, int <replaceable class="parameter">fit</replaceable>); </synopsis> <para>Enables/disables (Auto)fit function parameter.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">iPar</replaceable> </term> <listitem><para>parameter index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">fit</replaceable> </term> <listitem><para>true enables parameter fitting. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>loadErrModPar</title> <synopsis> int loadErrModPar(const QString& <replaceable class="parameter">url</replaceable>, int iArr<replaceable class="parameter"></replaceable>); </synopsis> <para>Loads error model function parameters from file.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">url</replaceable> </term> <listitem><para>URL of the file. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">iArr</replaceable> </term> <listitem><para>array list index. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>setErrModPar</title> <synopsis> int setErrModPar(int <replaceable class="parameter">iPar</replaceable>, double <replaceable class="parameter">value</replaceable>, int iArr<replaceable class="parameter"></replaceable>); </synopsis> <para>Sets error model function parameter value.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">iPar</replaceable> </term> <listitem><para>parameter index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">value</replaceable> </term> <listitem><para>parameter value. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">iArr</replaceable> </term> <listitem><para>array list index. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>deleteItem</title> <synopsis> int deleteItem(int <replaceable class="parameter">iItem</replaceable>); </synopsis> <para>Deletes plot item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">iItem</replaceable> </term> <listitem><para>item index. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>moveItem</title> <synopsis> int moveItem(int <replaceable class="parameter">is</replaceable>, int <replaceable class="parameter">id</replaceable>); </synopsis> <para>Moves plot item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">is</replaceable> </term> <listitem><para>source item index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">id</replaceable> </term> <listitem><para>destination item index. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>activateItem</title> <synopsis> int activateItem(int <replaceable class="parameter">iItem</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Sets activation state of plot item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">iItem</replaceable> </term> <listitem><para>item index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">active</replaceable> </term> <listitem><para>true for visible item. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>newFrameItem</title> <synopsis> void newFrameItem(double <replaceable class="parameter">x0</replaceable>, double <replaceable class="parameter">w</replaceable>, double <replaceable class="parameter">y0</replaceable>, double <replaceable class="parameter">h</replaceable>, double <replaceable class="parameter">xmin</replaceable>, double <replaceable class="parameter">xmax</replaceable>, double <replaceable class="parameter">ymin</replaceable>, double <replaceable class="parameter">ymax</replaceable>, int <replaceable class="parameter">logx</replaceable>, int <replaceable class="parameter">logy</replaceable>, int <replaceable class="parameter">ndigx</replaceable>, int <replaceable class="parameter">ndigy</replaceable>, const QString& <replaceable class="parameter">colFrame</replaceable>, const QString& <replaceable class="parameter">colGrid</replaceable>, double <replaceable class="parameter">xtic</replaceable>, double <replaceable class="parameter">ytic</replaceable>, int <replaceable class="parameter">mticx</replaceable>, int <replaceable class="parameter">mticy</replaceable>, int <replaceable class="parameter">gridmode</replaceable>, int <replaceable class="parameter">iex</replaceable>, int <replaceable class="parameter">iey</replaceable>, const QString& <replaceable class="parameter">sx</replaceable>, const QString& <replaceable class="parameter">sy</replaceable>, const QString& <replaceable class="parameter">sh</replaceable>, double <replaceable class="parameter">relSize</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Appends new frame item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">x0</replaceable> </term> <listitem><para>left page margin in centimeters. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">w</replaceable> </term> <listitem><para>width in centimeters. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">y0</replaceable> </term> <listitem><para>bottom page margin in centimeters. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">h</replaceable> </term> <listitem><para>height in centimeters. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">xmin</replaceable> </term> <listitem><para>x value of left data window margin in user units. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">xmax</replaceable> </term> <listitem><para>x value of right data window margin in user units. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ymin</replaceable> </term> <listitem><para>y value of bottom data window margin in user units. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ymax</replaceable> </term> <listitem><para>y value of top window data margin in user units. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">logx</replaceable> </term> <listitem><para>true for logarithmic scaling of x axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">logy</replaceable> </term> <listitem><para>true for logarithmic scaling of y axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ndigx</replaceable> </term> <listitem><para>number of digits for x axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ndigy</replaceable> </term> <listitem><para>number of digits for y axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">colFrame</replaceable> </term> <listitem><para>color for frame and labels. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">colGrid</replaceable> </term> <listitem><para>color for grids and tics. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">xtic</replaceable> </term> <listitem><para>distance between major tics of x axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ytic</replaceable> </term> <listitem><para>distance between major tics of y axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">mticx</replaceable> </term> <listitem><para>number of intervals between major tics of x axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">mticy</replaceable> </term> <listitem><para>number of intervals between major tics of y axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">gridmode</replaceable> </term> <listitem><para>0 for frame only, 1 for axes with tics, 2 for axes with tics and labels, 3 for grid, 4 for grid with labels. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">iex</replaceable> </term> <listitem><para>logarithm of normalization factor for x axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">iey</replaceable> </term> <listitem><para>logarithm of normalization factor for y axis. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">sx</replaceable> </term> <listitem><para>x axis text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">sy</replaceable> </term> <listitem><para>y axis text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">sh</replaceable> </term> <listitem><para>heading text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">relSize</replaceable> </term> <listitem><para>relative size of text, markers and lines. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">active</replaceable> </term> <listitem><para>true for visible item. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>newAutoFrameItem</title> <synopsis> void newAutoFrameItem(); </synopsis> <para>Appends new frame item corresponding to the autoplot settings.</para> </sect2> <sect2> <title>newArrayItem</title> <synopsis> int newArrayItem(const QString& <replaceable class="parameter">path</replaceable>, int <replaceable class="parameter">ix</replaceable>, int <replaceable class="parameter">iy</replaceable>, int <replaceable class="parameter">ie</replaceable>, int <replaceable class="parameter">istart</replaceable>, int <replaceable class="parameter">n</replaceable>, int <replaceable class="parameter">errbars</replaceable>, int <replaceable class="parameter">symb</replaceable>, const QString& <replaceable class="parameter">color</replaceable>, double <replaceable class="parameter">fx</replaceable>, double <replaceable class="parameter">fy</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Appends new array item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">path</replaceable> </term> <listitem><para>absolute path of the data file. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ix</replaceable> </term> <listitem><para>x column index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">iy</replaceable> </term> <listitem><para>y column index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">ie</replaceable> </term> <listitem><para>y error column index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">istart</replaceable> </term> <listitem><para>start row index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">n</replaceable> </term> <listitem><para>number of data points. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">errbars</replaceable> </term> <listitem><para>true to plot error bars. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">symb</replaceable> </term> <listitem><para>0 for circles, < 0 for different markers, > 0 for different line types. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">color</replaceable> </term> <listitem><para>color for data plot. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">fx</replaceable> </term> <listitem><para>normalization factor for x values. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">fy</replaceable> </term> <listitem><para>normalization factor for y values. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">active</replaceable> </term> <listitem><para>true for visible item. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>newFunItem</title> <synopsis> int newFunItem(const QString& <replaceable class="parameter">path</replaceable>, const QString& <replaceable class="parameter">name</replaceable>, double <replaceable class="parameter">xmin</replaceable>, double <replaceable class="parameter">xmax</replaceable>, double <replaceable class="parameter">dx</replaceable>, int <replaceable class="parameter">symb</replaceable>, const QString& <replaceable class="parameter">color</replaceable>, double <replaceable class="parameter">fx</replaceable>, double <replaceable class="parameter">fy</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Appends new function item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">path</replaceable> </term> <listitem><para>absolute path of the function library. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">name</replaceable> </term> <listitem><para>function name. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">xmin</replaceable> </term> <listitem><para>minimum argument value. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">xmax</replaceable> </term> <listitem><para>maximum argument value. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">dx</replaceable> </term> <listitem><para>argument stepsize. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">symb</replaceable> </term> <listitem><para>0 for circles, < 0 for different markers, > 0 for different line types. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">color</replaceable> </term> <listitem><para>color for function plot. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">fx</replaceable> </term> <listitem><para>normalization factor for x values. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">fy</replaceable> </term> <listitem><para>normalization factor for y values. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">active</replaceable> </term> <listitem><para>true for visible item. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>newParFunItem</title> <synopsis> int newParFunItem(const QString& <replaceable class="parameter">pathx</replaceable>, const QString& <replaceable class="parameter">namex</replaceable>, const QString& <replaceable class="parameter">pathy</replaceable>, const QString& <replaceable class="parameter">namey</replaceable>, double <replaceable class="parameter">tmin</replaceable>, double <replaceable class="parameter">tmax</replaceable>, double <replaceable class="parameter">dt</replaceable>, int <replaceable class="parameter">symb</replaceable>, const QString& <replaceable class="parameter">color</replaceable>, double <replaceable class="parameter">fx</replaceable>, double <replaceable class="parameter">fy</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Appends new parametric function item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">pathx</replaceable> </term> <listitem><para>absolute path of the x function library. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">namex</replaceable> </term> <listitem><para>x function name. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">pathy</replaceable> </term> <listitem><para>absolute path of the y function library. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">namey</replaceable> </term> <listitem><para>y function name. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">tmin</replaceable> </term> <listitem><para>minimum argument value. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">tmax</replaceable> </term> <listitem><para>maximum argument value. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">dt</replaceable> </term> <listitem><para>argument stepsize. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">symb</replaceable> </term> <listitem><para>0 for circles, < 0 for different markers, > 0 for different line types. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">color</replaceable> </term> <listitem><para>color for function plot. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">fx</replaceable> </term> <listitem><para>normalization factor for x values. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">fy</replaceable> </term> <listitem><para>normalization factor for y values. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">active</replaceable> </term> <listitem><para>true for visible item. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>newLegendItem</title> <synopsis> void newLegendItem(int <replaceable class="parameter">symb</replaceable>, const QString& <replaceable class="parameter">colSymb</replaceable>, double <replaceable class="parameter">x</replaceable>, double <replaceable class="parameter">y</replaceable>, const QString& <replaceable class="parameter">text</replaceable>, const QString& <replaceable class="parameter">colText</replaceable>, double <replaceable class="parameter">xoff</replaceable>, double <replaceable class="parameter">yoff</replaceable>, double <replaceable class="parameter">relSize</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Appends new legend item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">symb</replaceable> </term> <listitem><para>0 for circles, < 0 for different markers, > 0 for different line types. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">colSymb</replaceable> </term> <listitem><para>color for marker or line. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">x</replaceable> </term> <listitem><para>x position in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">y</replaceable> </term> <listitem><para>y position in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">text</replaceable> </term> <listitem><para>legend text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">colText</replaceable> </term> <listitem><para>color for text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">xoff</replaceable> </term> <listitem><para>x offset for text in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">yoff</replaceable> </term> <listitem><para>y offset for text in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">relSize</replaceable> </term> <listitem><para>relative size of text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">active</replaceable> </term> <listitem><para>true for visible item. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>newTextItem</title> <synopsis> void newTextItem(const QString& <replaceable class="parameter">text</replaceable>, const QString& <replaceable class="parameter">color</replaceable>, int <replaceable class="parameter">align</replaceable>, double <replaceable class="parameter">x</replaceable>, double <replaceable class="parameter">y</replaceable>, double <replaceable class="parameter">dir</replaceable>, double <replaceable class="parameter">relSize</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Appends new text item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">text</replaceable> </term> <listitem><para>text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">color</replaceable> </term> <listitem><para>color for text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">align</replaceable> </term> <listitem><para>1: left aligned, 2: centered, 3: right aligned. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">x</replaceable> </term> <listitem><para>x position in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">y</replaceable> </term> <listitem><para>y position in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">dir</replaceable> </term> <listitem><para>direction in degree. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">relSize</replaceable> </term> <listitem><para>relative size of text. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">active</replaceable> </term> <listitem><para>true for visible item. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>newLineItem</title> <synopsis> void newLineItem(int <replaceable class="parameter">symb</replaceable>, const QString& <replaceable class="parameter">color</replaceable>, double <replaceable class="parameter">x</replaceable>, double <replaceable class="parameter">y</replaceable>, double <replaceable class="parameter">dir</replaceable>, double <replaceable class="parameter">len</replaceable>, double <replaceable class="parameter">relSize</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Appends new line item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">symb</replaceable> </term> <listitem><para>1 to 9 for different line types. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">color</replaceable> </term> <listitem><para>color for line. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">x</replaceable> </term> <listitem><para>x start position in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">y</replaceable> </term> <listitem><para>y start position in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">dir</replaceable> </term> <listitem><para>direction in degree. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">len</replaceable> </term> <listitem><para>length in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">relSize</replaceable> </term> <listitem><para>relative width. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">active</replaceable> </term> <listitem><para>true for visible item. </para></listitem> </varlistentry> </variablelist> </sect2> <sect2> <title>newArrowItem</title> <synopsis> void newArrowItem(const QString& <replaceable class="parameter">color</replaceable>, double <replaceable class="parameter">x</replaceable>, double <replaceable class="parameter">y</replaceable>, double <replaceable class="parameter">dir</replaceable>, double <replaceable class="parameter">len</replaceable>, double <replaceable class="parameter">relSize</replaceable>, int <replaceable class="parameter">active</replaceable>); </synopsis> <para>Appends new arrow item.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">color</replaceable> </term> <listitem><para>color for arrow. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">x</replaceable> </term> <listitem><para>x position of head in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">y</replaceable> </term> <listitem><para>y position of head in cm. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">iFun</replaceable> </term> <listitem><para>function item index. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">errCol</replaceable> </term> <listitem><para>true for data weighing by error column, false for weighing by error model function. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">errModPath</replaceable> </term> <listitem><para>absolute path of the library for the error model function. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">errModName</replaceable> </term> <listitem><para>error model function name. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>fit</title> <synopsis> int fit(int <replaceable class="parameter">nonLin</replaceable>, int <replaceable class="parameter">savePar</replaceable>, int <replaceable class="parameter">follow</replaceable>); </synopsis> <para>Performs parameter fit.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">nonLin</replaceable> </term> <listitem><para>true for nonlinear parameter fits. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">savePar</replaceable> </term> <listitem><para>true to save resulting parameter files. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">follow</replaceable> </term> <listitem><para>true to follow parameter sets in fit series. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>chiSquare</title> <synopsis> double chiSquare(); </synopsis> <para>Returns chi-square of last fit.</para> <para>Returns: chi-square. </para> </sect2> <sect2> <title>saveFitPar</title> <synopsis> int saveFitPar(const QString& <replaceable class="parameter">url</replaceable>); </synopsis> <para>Saves parameters and their errors resulting from a fit to a file.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">url</replaceable> </term> <listitem><para>URL of the file. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> <sect2> <title>exportValues</title> <synopsis> int exportValues(const QString& <replaceable class="parameter">url</replaceable>, int <replaceable class="parameter">iItem</replaceable>); </synopsis> <para>Exports function value table to file.</para> <para>Parameters:</para> <variablelist> <varlistentry> <term><replaceable class="parameter">url</replaceable> </term> <listitem><para>URL of the file. </para></listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">iItem</replaceable> </term> <listitem><para>item index. </para></listitem> </varlistentry> </variablelist> <para>Returns: true when succeeded. </para> </sect2> </sect1> </chapter> <chapter id="faq"> <title>Questions and Answers</title> <para></para> <qandaset id="faqlist"> <qandaentry> <question> <para>The automatic calculation of the Bounding Box for PostScript files does not work correctly. The calculated values cut off parts of the plot. What's wrong?</para> </question> <answer> <para>To work correctly, the <guilabel>Page format</guilabel> must be set in the <link linkend="basic">Basic Settings</link> dialog sufficiently large, because &kpl; uses this area to look for the smallest rectangle containing all plotted items.</para> </answer> </qandaentry> <qandaentry> <question> <para>Why does my plot of a data file end with a line to the origin, when the last point of the file does not have the coordinates (0,0)? </para> </question> <answer> <para>Your data file seems to end with some invisible but interfering bytes. Delete them!</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="credits"> <title>Credits and License</title> <para> &kpl; </para> <para> Program copyright 2001 Werner Stille <email>stille@uni-freiburg.de</email> </para> <para> Thanks to <itemizedlist> <listitem><para>the KDevelop Team for making KDE programming much more easy</para></listitem> <listitem><para>Dimi Shahbaz <email>dshahbaz@ucla.edu</email> for suggestions and patches</para></listitem> <listitem><para>Jürgen Siepmann <email>siepmann@kanzlei-siepmann.de</email> for testing and criticism</para></listitem> <listitem><para>Wojciech Migda <email>migda@chemia.uj.edu.pl</email> for the polish translation</para></listitem> <listitem><para>Taiki Komoda <email>kom@kde.gr.jp</email> for the japanese translation</para></listitem> </itemizedlist> </para> <para> Documentation copyright 2001 Werner Stille <email>stille@uni-freiburg.de</email> </para> &underFDL; &underGPL; </chapter> <appendix id="installation"> <title>Installation</title> <sect1 id="getting-kpl"> <title>How to Obtain &kpl;</title> <para> &kpl; can be found on its homepage <ulink url="http://frsl06.physik.uni-freiburg.de/privat/stille/kpl/"> http://frsl06.physik.uni-freiburg.de/privat/stille/kpl/</ulink> and on <ulink url="ftp://ftp.kde.org/pub/kde/">ftp://ftp.kde.org/pub/kde/</ulink>, the main ftp site of the KDE project.</para> </sect1> <sect1 id="requirements"> <title>Requirements</title> <para> In order to successfully use &kpl;, you need KDE 2. The PostScript interpreter <application>Ghostscript</application> is required for the automatic calculation of bounding boxes for generated PostScript files.</para> </sect1> <sect1 id="compilation"> <title>Compilation and Installation</title> <para> In order to compile and install &kpl; on your system, type the following in the base directory of &kpl; distribution: <screen width="40"> <prompt>%</prompt> <userinput>./configure</userinput> <prompt>%</prompt> <userinput>make</userinput> <prompt>%</prompt> <userinput>make install</userinput> </screen> </para> <para>Since &kpl; uses autoconf and automake you should have not trouble compiling it. Should you run into problems please report them to the author of &kpl;.</para> </sect1> </appendix> </book>