Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 633b09fe5e4e883f8882d51013e166c2 > files > 11

oleo-1.99.16-1mdk.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Created on July, 29  2001 by texi2html 1.61 -->
<!-- 
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
            Karl Berry  <karl@freefriends.org>
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
            and many others.
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
 
-->
<HTML>
<HEAD>
<TITLE>Oleo 1.99.13: </TITLE>

<META NAME="description" CONTENT="Oleo 1.99.13: ">
<META NAME="keywords" CONTENT="Oleo 1.99.13: ">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="texi2html 1.61">

</HEAD>

<BODY LANG="EN" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">

<A NAME="SEC_Top"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
</P><P>

Oleo is the GNU spreadsheet program.  This documentation is of Oleo
version 1.99.13, as of July 29 2000.  It is by no
means complete, nor necessarily accurate for that matter.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC1">1. Basics</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC29">2. Entering Data</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC34">3. Making Changes</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC39">4. Style</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC51">5. Multiple Windows</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC56">6. Options</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC60">7. Printing and Plotting</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC70">8. Macros</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC74">9. Programs</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC79">10. Keymaps and defining keys</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC80">11. Functions</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC92">12. Extending the Oleo system</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC94">13. Reporting Bugs</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC95">14. A Motif Graphical User Interface for Oleo</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC106">15. Accessing Databases</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC110">16. Key Index</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC111">17. Command Index</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC112">18. Function Index</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC113">19. Options Index</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC114">20. Concept Index</A></TD><TD ALIGN="left"></TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE=1>
<A NAME="SEC1"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC2"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 1. Basics </H1>
<!--docid::SEC1::-->
 
<P>

<CODE>Oleo</CODE> is the GNU spreadsheet <A NAME="DOCF1" HREF="oleo.html#FOOT1">(1)</A>. 
</P><P>

<CODE>Oleo</CODE> has more than one user interface.
The traditional <CODE>oleo</CODE> environment shows a curses based (character mode)
user interface.
A bare bones user interface based on the X Window System exists as of
version 1.6 which dates back to 1994.
In 1998, development started for a <CODE>motif</CODE> based user interface.
It should be more user friendly than the character based UI.
</P><P>

Most of this manual describes the character based user interface,
the <CODE>motif</CODE> user interface is treaded in (see section <A HREF="oleo.html#SEC95">14. A Motif Graphical User Interface for Oleo</A>).
</P><P>

To start Oleo, type <CODE>oleo</CODE>.  If <CODE>filename</CODE> is the name of a
spreadsheet that you have saved from a previous <CODE>oleo</CODE> session, you
can type <CODE>oleo filename</CODE> to start Oleo with the spreadsheet
loaded. 
</P><P>

To stop Oleo, type <CODE>C-x C-c</CODE>.  This will prompt you for the name of
a file in which to save the current spreadsheet.  If you do not want to save
it, type <KBD>RET</KBD>, otherwise type the name of the filename that you
wish to save it in, and then press <KBD>RET</KBD>.
</P><P>

 Type <KBD>C-z</KBD> to suspend <CODE>oleo</CODE>.  This does not do anything if 
you are running under X-windows. 
<A NAME="IDX1"></A>
</P><P>

If you wish to abort a command, type <KBD>C-g</KBD> 
<A NAME="IDX2"></A>
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC2">Typing</A></TD><TD ALIGN="left">How to type commands</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC3">Cell referencing</A></TD><TD ALIGN="left">Two ways of naming cells</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC7">The Screen</A></TD><TD ALIGN="left">The parts of the  screen</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC11">Cursor and Mark</A></TD><TD ALIGN="left">The cell cursor and the mark</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC12">Recalculation</A></TD><TD ALIGN="left">How updating works</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC13">Movement</A></TD><TD ALIGN="left">Moving around the spreadsheet</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC19">Mouse</A></TD><TD ALIGN="left">Using the mouse</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC20">Regions and Variables</A></TD><TD ALIGN="left">How to use regions and variables</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC21">Getting Help</A></TD><TD ALIGN="left">Getting help</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC22">Saving and reading</A></TD><TD ALIGN="left">Saving and reading Spreadsheets</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC23">Command Line Options</A></TD><TD ALIGN="left">Command Line Options</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC24">.oleorc file</A></TD><TD ALIGN="left">The initialization file</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC25">Expressions</A></TD><TD ALIGN="left">Types of expressions</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC2"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.1 How to type commands </H2>
<!--docid::SEC2::-->
<P>

We use emacs abbreviations for keystrokes.  These examples should make
the notation clear.
<DL COMPACT>
<DT><KBD>C-c</KBD>
<DD>        Hold down the control key and press <KBD>c</KBD>
<DT><KBD>C-D</KBD>
<DD>       Hold down the control key and press <KBD>D</KBD> (capital <KBD>D</KBD>)
<DT><KBD>C-x c</KBD>
<DD>       Hold down the control key and press <KBD>x</KBD>, then press <KBD>c</KBD>
<DT><KBD>C-u C-x c</KBD>
<DD>        Hold down the control key and press <KBD>ux</KBD>, then press <KBD>c</KBD>
<DT><KBD>M-c</KBD>
<DD>        Type an escape followed by a <KBD>c</KBD>.  If you can't find the
escape key, you can always type <KBD>C-[</KBD>.  
<DT><KBD>M-C-c</KBD>
<DD>        Type an escape followed by  <KBD>C-c</KBD>.  
</DL>
<P>

Some commands are not bound to key strokes.  For instance, if you wish
to erase the entire spreadsheet, you have to use the command
<CODE>clear-spreadsheet</CODE>.  To execute a command, type <KBD>M-x</KBD> and then
the command name:
<TABLE><tr><td>&nbsp;</td><td><pre>               M-x clear-spreadsheet
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC3"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC2"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC4"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.2 Cell Referencing </H2>
<!--docid::SEC3::-->
<P>

  Many commands and functions operate on a given cell or group of cells,
and therefore take a cell or range reference (address) as an argument.
An individual cell is specified by its row/column coordinates, which
start with row 1, column 1 in the upper left of the spreadsheet.  A
<EM>range</EM> is a rectangular group of cells, specified by giving its
left and rightmost columns and top and bottom rows.
</P><P>

<A NAME="IDX3"></A>
<A NAME="IDX4"></A>
  A reference may be absolute or relative.  An <EM>absolute</EM> reference
is measured from the upper left of the spreadsheet, and does not change
when the cell containing it is moved or copied.  A <EM>relative</EM>
reference, however, is measured as an offset from the cell it is in, and
when moved points to the cell at the same offset relative to the new
location.
</P><P>

  There are two ways of addressing cells in Oleo, called <CODE>a0</CODE> and
<CODE>noa0</CODE>.  To switch between the modes, use the <CODE>set-option</CODE>
command:
<A NAME="IDX5"></A>
</P><P>

<DL COMPACT>
<DT><CODE>M-x set-option a0</CODE>
<DD>  Sets <CODE>a0</CODE> mode.
<DT><CODE>M-x set-option no a0</CODE>
<DD>  Sets <CODE>noa0</CODE> mode.
</DL>
<P>

In both modes the case of cell and range letters is ignored.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC4">noa0 mode</A></TD><TD ALIGN="left">Using noa0 Mode</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC5">a0 mode</A></TD><TD ALIGN="left">Using a0 Mode</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC6">Comparison</A></TD><TD ALIGN="left">Comparing a0 and noa0 modes</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC4"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC5"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC2"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.2.1 noa0 Mode </H3>
<!--docid::SEC4::-->
<P>

  In <CODE>noa0</CODE> mode (the default), absolute cell addresses have the
form <CODE>R<VAR>row</VAR>C<VAR>col</VAR></CODE>, where <VAR>row</VAR> and <VAR>col</VAR> are
the row and column (as integers).  Thus, <CODE>R1C2</CODE> is the second cell
from the left on the top row.       The cell in the leftmost uppermost corner
is <CODE>R1C1</CODE>, and the cell in the rightmost lowermost corner is
<CODE>R65535C65535</CODE>.  
</P><P>

Relative addresses have the form
<CODE>R[<VAR>rowoffset</VAR>]C[<VAR>coloffset</VAR>]</CODE>, as in <CODE>R[-1]C[+1]</CODE>
(the cell above and to the right of the current cell).  An offset of 0
can be omitted, along with its square brackets: <CODE>RC[+2]</CODE> (the cell
two columns to the right).  The plus signs of positive offsets can also
be omitted.  Absolute and relative addresses can be combined, as in
<CODE>R4C[-1]</CODE> (the cell in row four that's one left of the current
cell).
</P><P>

  Ranges in <CODE>noa0</CODE> mode are specified as
<CODE>R<VAR>row1</VAR>:<VAR>row2</VAR>C<VAR>col1</VAR>:<VAR>col2</VAR></CODE>, where the row
and column references may be either absolute or relative, and can be
mixed.  Thus, <CODE>R1:4C1:[-2]</CODE> refers to the cells of rows one through
4, columns one through the second column to the left.  If <VAR>row1</VAR> =
<VAR>row2</VAR> or <VAR>col1</VAR> = <VAR>col2</VAR>, the colon and second number may
be omitted, as in <CODE>R1:10C2</CODE> (rows one through ten in column two).
</P><P>

<HR SIZE="6">
<A NAME="SEC5"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC4"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC6"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC2"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.2.2 a0 Mode </H3>
<!--docid::SEC5::-->
<P>

  In <CODE>a0</CODE> mode, relative references have the form <VAR>col_let</VAR>
<VAR>row_num</VAR>, where <VAR>col_let</VAR> is the letter of the column and
<VAR>row-num</VAR> is the row number.  <VAR>col_let</VAR> can be upper or lower
case.  The cell in the leftmost uppermost corner
is <CODE>A1</CODE>, and the cell in the rightmost lowermost corner is
<CODE>CRXO65535</CODE>. The columns are initially single letters (A-Z) , then
double letters (AA-ZZ), then triple letters (AAA-ZZZ), and finally some
quadruple letters (AAAA-CRXO).  
</P><P>

<CODE>B3</CODE> refers to the cell in the second column of row 3.
Since this is a relative reference, it will change when the containing
cell is moved, to refer to the cell at the same relative position;
e.g., if the cell is moved two columns to the right the reference will
change to <CODE>D3</CODE>.
</P><P>

  Absolute references have the form
<CODE>$</CODE><VAR>col_let</VAR><CODE>$</CODE><VAR>row_num</VAR>, as in <CODE>$A$1</CODE> (top left
cell).  These do not change when the containing cell is moved.  Both
types can be mixed with predictable results, e.g., <CODE>$A4</CODE> has an
absolute column but a relative row.
</P><P>

  Ranges are given as <VAR>cell_ref</VAR><CODE>:</CODE><VAR>cell_ref</VAR> or
<VAR>cell_ref</VAR><CODE>.</CODE><VAR>cell_ref</VAR>, where the <VAR>cell_ref</VAR>s describe
diagonally opposite corners of the range.  Thus, <CODE>A1:B2</CODE> refers to
the topmost, leftmost four cells in the spreadsheet.
</P><P>

<HR SIZE="6">
<A NAME="SEC6"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC5"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC2"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.2.3 Comparison </H3>
<!--docid::SEC6::-->
<P>

In order to get an understanding of these two addressing modes, assume that the
cell cursor is in <CODE>E7</CODE> = <CODE>R7C5</CODE>.  The left hand column is <CODE>noa0</CODE>
mode, and the right hand one is <CODE>a0</CODE> mode.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>                 R1C2              $B$1
                 R[-1]C[+1]        F6
                 RC[+2]            G7
                 R4C[-1]           $D4
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC7"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC6"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC8"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC11"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.3 The Screen </H2>
<!--docid::SEC7::-->
The screen is divided into three parts: the input line, the status
line, and the work area.
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC8">Minibuffer</A></TD><TD ALIGN="left">The input line</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC9">Status Line </A></TD><TD ALIGN="left">The status line</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC10">Work Area</A></TD><TD ALIGN="left">The work area and its borders</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC8"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC9"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC11"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.3.1 The input line </H3>
<!--docid::SEC8::-->
<P>

        The input line is also referred to as the Minibuffer.  This is
where you enter data into cells (see section <A HREF="oleo.html#SEC31">2.2 Entering values in a cell</A>).  You can change the
location of the input line.  For example, to change the input line to the
bottom of the screen, type
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>M-x set-option <KBD>RET</KBD> input -1
</pre></td></tr></table></P><P>

This can be made the default.  (see section <A HREF="oleo.html#SEC24">1.12 The <TT>`.oleorc'</TT> file</A>)
</P><P>

<HR SIZE="6">
<A NAME="SEC9"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC8"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC10"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC11"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.3.2 The status line </H3>
<!--docid::SEC9::-->
<P>

        The status line describes the current status.  This includes:
<UL>
<LI>
        The cell number (e.g., <CODE>A1</CODE> or <CODE>R1C1</CODE>), or the current
range (cursor to mark) if the mark is set
<A NAME="DOCF2" HREF="oleo.html#FOOT2">(2)</A>
<LI>
        The <KBD>C-u</KBD> repeat count of the current command (if set), in
curly braces
<LI>
        The value of the cell
<LI>
        The literal contents of the cell, if a formula
</UL>
<P>

For instance, if the mark is located at cell <CODE>D4</CODE>, the cell cursor
is in cell <CODE>A11</CODE>, the cell contents is <CODE>@sum(A1.B10)</CODE>, and the
sum of the entries in the region <CODE>A1.B10</CODE> is 89, then the status
line is
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>*A11:D4 89 [@sum(A1.B10)]
</pre></td></tr></table></P><P>

The <SAMP>`*'</SAMP> indicates that the mark is set, and thus <CODE>A11:D4</CODE> is
the range from the cursor cell to the mark.  You can change the location
of the status line using <CODE>M-x set-option</CODE>.  To move the status line
to the bottom of the screen, type
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>M-x set-option <KBD>RET</KBD> status -1
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC10"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC9"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC11"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC3"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC11"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.3.3 The work area and its borders </H3>
<!--docid::SEC10::-->
<P>

The work area is surrounded by a border giving the row and column numbers.
When there are multiple windows, there will be several borders.
A cell is a box that can hold data.  The cell cursor is the highlighted
rectangle indicating the `active cell'.  A region is a rectangular block
of cells.  Regions are described by giving coordinates of the upper left
cell and lower right cell.
</P><P>

The appearance of the screen can be changed (see section <A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A>).
</P><P>

<HR SIZE="6">
<A NAME="SEC11"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC10"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC12"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC7"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.4 The cell cursor and the mark </H2>
<!--docid::SEC11::-->
Every window has its own cell cursor.  The most recently used window
defines the current cell position.  There is one cell marker, called the
`mark', global to the spreadsheet.
<P>

<DL COMPACT>
<DT><KBD>C-x j</KBD>
<DD>You are asked for a cell to go to, and the cell cursor is moved
there.  The cell can be either a cell name as in <KBD>R32C96</KBD>,
or a variable.  This command starts with a default of
wherever the cursor was the last time this command was used.
(<CODE>goto-cell</CODE>)
<A NAME="IDX6"></A>
<P>

<DT><KBD>M-x j</KBD>
<DD>You are asked for a region. The cursor is placed in the top-left
corner of the region, and the cell-mark is placed at the
opposite corner of the region. (<CODE>goto-region</CODE>)
<A NAME="IDX7"></A>
<P>

<DT><KBD>C-@</KBD>
<DD>        Set the cell mark to the current cell. (<CODE>mark-cell</CODE>)
<A NAME="IDX8"></A>
<P>

<DT><KBD>C-u C-@</KBD>
<DD>         Set the cell cursor equal to the mark, and clear the mark,
<P>

<DT><KBD>C-x C-x</KBD>
<DD>        Exchange the cell cursor and cell mark.
(<CODE>exchange-point-and-mark</CODE>)
<A NAME="IDX9"></A>
<P>

<DT><KBD>C-u C-x C-x</KBD>
<DD>         Clear the mark.
</DL>
<P>
<A NAME="IDX10"></A>
<A NAME="IDX11"></A>
<A NAME="IDX12"></A>
<A NAME="IDX13"></A>
<A NAME="IDX14"></A>
<A NAME="IDX15"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC12"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC11"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC13"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.5 How updating works </H2>
<!--docid::SEC12::-->
<P>

Oleo periodically recalculates the values of the spreadsheet 
that can change.  This calculation can be done between keystrokes, and
usually stops when a key is pressed.  This behavior can be changed with
the options <CODE>background</CODE> and <CODE>nobackground</CODE>.  The time between
updates (initially 10 seconds) can be changed using the option
<CODE>ticks</CODE>.   You can also disable automatic recalculation with the
option <CODE>noauto</CODE>.  In this case, recalculation is only done when the
<CODE>recalculate</CODE> command is used.
(see section <A HREF="oleo.html#SEC56">6. Options</A>)
<A NAME="IDX16"></A>
<A NAME="IDX17"></A>
<A NAME="IDX18"></A>
<A NAME="IDX19"></A>
<A NAME="IDX20"></A>
<A NAME="IDX21"></A>
<A NAME="IDX22"></A>
</P><P>

<DL COMPACT>
<DT><KBD>C-x !</KBD>
<DD>Recalculate the spreadsheet until all the cells whose
values may have changed have been evaluated.  If there are
circular cell references, the cells in the loop will be
evaluated at most 40 times (this number subject to change!).
(<CODE>recalculate</CODE>)
<A NAME="IDX23"></A>
<A NAME="IDX24"></A>
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC13"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC12"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC14"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.6 Moving around the spreadsheet </H2>
<!--docid::SEC13::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC14">Single Cell Movement</A></TD><TD ALIGN="left">Moving to a neighboring cell</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC15">Scanning</A></TD><TD ALIGN="left">Finding the next empty cell</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC16">Large Scale Movement</A></TD><TD ALIGN="left">Moving long distances</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC17">Movement examples</A></TD><TD ALIGN="left">Examples of movement commands</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC18">Screen Moving</A></TD><TD ALIGN="left">Moving by screens</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC14"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC13"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC15"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC12"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC13"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.6.1 Moving to a neighboring cell </H3>
<!--docid::SEC14::-->
The arrow keys work in the obvious fashion, moving the cell cursor one
cell in the direction of the key.  In addition, there are keyboard
commands
<P>

<DL COMPACT>
<DT><KBD>C-p</KBD>
<DD>        Move up one cell (<CODE>up-cell</CODE>)
<A NAME="IDX25"></A>
<DT><KBD>C-n</KBD>
<DD>        Move down one cell (<CODE>down-cell</CODE>)
<A NAME="IDX26"></A>
<DT><KBD>C-f</KBD>
<DD>        Move forward (right) one cell (<CODE>right-cell</CODE>)
<A NAME="IDX27"></A>
<DT><KBD>C-b</KBD>
<DD>        Move backward (left) one cell (<CODE>left-cell</CODE>)
<A NAME="IDX28"></A>
</DL>
<P>
<A NAME="IDX29"></A>
<A NAME="IDX30"></A>
<A NAME="IDX31"></A>
<A NAME="IDX32"></A>
</P><P>

There are also commands for diagonal movements, but they are not bound
to any keys.  These commands are 
<CODE>upleft-cell</CODE>, <CODE>downleft-cell</CODE>,
<CODE>upright-cell</CODE>, <CODE>downright-cell</CODE>.
<A NAME="IDX33"></A>
<A NAME="IDX34"></A>
<A NAME="IDX35"></A>
<A NAME="IDX36"></A>
        
<HR SIZE="6">
<A NAME="SEC15"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC14"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC16"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC12"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC13"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.6.2 Finding the next empty cell </H3>
<!--docid::SEC15::-->
These commands move to the next empty cell in a given direction.
<A NAME="DOCF3" HREF="oleo.html#FOOT3">(3)</A>
<P>

<DL COMPACT>
<DT><KBD>M-p</KBD>
<DD>Move to the first empty cell above the current cell in the current
column.  If given a repeat count, go to the N-th most empty cell.
(<CODE>scan-up</CODE>)
<A NAME="IDX37"></A>
<DT><KBD>M-n</KBD>
<DD>Move to the first empty cell below the current cell in the current
column.  If given a repeat count, go to the N-th most empty cell.
(<CODE>scan-down</CODE>)
<A NAME="IDX38"></A>
<DT><KBD>M-f</KBD>
<DD>Move to the first empty cell to the right of the current cell in the
current row.  If given a repeat count, go to the N-th most empty cell.
(<CODE>scan-right</CODE>)
<A NAME="IDX39"></A>
<DT><KBD>M-b</KBD>
<DD>Move to the first empty cell to the left of the current cell in the
current row.  If given a repeat count, go to the N-th most empty cell.
(<CODE>scan-left</CODE>)
<A NAME="IDX40"></A>
</DL>
<P>
<A NAME="IDX41"></A>
<A NAME="IDX42"></A>
<A NAME="IDX43"></A>
<A NAME="IDX44"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC16"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC15"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC17"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC12"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC13"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.6.3 Moving long distances </H3>
<!--docid::SEC16::-->
<P>

These commands move over large areas of the spreadsheet, so they first
set the mark to the current cell before moving (if it's not already
set).  You can thus jump back to where you were with <KBD>C-x C-x</KBD>
(<CODE>exchange-point-and-mark</CODE>).
</P><P>

<DL COMPACT>
<DT><KBD>M-&#60;</KBD>
<DD>Go to the upper left cell <A NAME="DOCF4" HREF="oleo.html#FOOT4">(4)</A>. 
(<CODE>upper-left</CODE>)
<A NAME="IDX45"></A>
<P>

<DT><KBD>M-&#62;</KBD>
<DD>Go to lower right cell.  
The lower right cell is the cell in the rightmost column that has a value,
and the lowermost row that has a value.  There might not be any value in
the lower right cell. (<CODE>lower-right</CODE>)
<A NAME="IDX46"></A>
<P>

<DT><KBD>C-a</KBD>
<DD>Go to the beginning of the row.  With a <KBD>C-u</KBD> prefix argument <VAR>n</VAR>,
it also moves <VAR>n</VAR>-1 <A NAME="DOCF5" HREF="oleo.html#FOOT5">(5)</A> rows down first. (<CODE>beginning-of-row</CODE>)
<A NAME="IDX47"></A>
<P>

<DT><KBD>C-e</KBD>
<DD>Go to the last cell of the current row (that has a value).  A <KBD>C-u</KBD> prefix
is also accepted. (<CODE>end-of-row</CODE>)
<A NAME="IDX48"></A>
<DT><KBD>M-C-a</KBD>
<DD>Go to the beginning of the column. (<CODE>beginning-of-column</CODE>)
<A NAME="IDX49"></A>
<DT><KBD>M-C-e</KBD>
<DD>Go to the last cell of the current column. (<CODE>end-of-column</CODE>)
<A NAME="IDX50"></A>
</DL>
<P>
<A NAME="IDX51"></A>
<A NAME="IDX52"></A>
<A NAME="IDX53"></A>
<A NAME="IDX54"></A>
<A NAME="IDX55"></A>
<A NAME="IDX56"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC17"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC16"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC18"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC12"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC13"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.6.4 Examples of movement commands </H3>
<!--docid::SEC17::-->
We use the spreadsheet below.  The blank squares are empty.
<P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

              | A | B | C | D | E | F |
            --|---|---|---|---|---|---|
            1 |   |   |   |   |   |   |
            --|---|---|---|---|---|---|
            2 |   |   | x |   | x |   |
            --|---|---|---|---|---|---|
            3 |   |   | x | x | x |   |
            --|---|---|---|---|---|---|
            4 |   | x |   |   |   |   |
            --|---|---|---|---|---|---|
</P><P>

</pre></td></tr></table></P><P>

The first column is the command, the second is the cell the cell cursor
is in initially, and the third column is the location of the cell cursor
at the end of the command.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

                <KBD>M-&#60;</KBD>       B4    =>    A1
</P><P>

                <KBD>M-&#62;</KBD>       B4    =>    E4
                <KBD>M-&#62;</KBD>       C2    =>    E4
                
                <KBD>C-a</KBD>       E4    =>    E1
                <KBD>C-a</KBD>       D4    =>    E1
</P><P>

                <KBD>C-e</KBD>       A4    =>    B4
                <KBD>C-e</KBD>       A3    =>    E3
                <KBD>C-e</KBD>       A2    =>    E2
                <KBD>C-e</KBD>       A1    =>    A1
</P><P>

                <KBD>M-C-a</KBD>     E2    =>    E1
                <KBD>M-C-e</KBD>     B1    =>    B4
</P><P>

                <KBD>M-f</KBD>       A4    =>    C4
                <KBD>M-f</KBD>       A2    =>    D2
</pre></td></tr></table>        
</P><P>

<HR SIZE="6">
<A NAME="SEC18"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC17"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC19"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC12"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC13"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC19"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.6.5 Moving by screens </H3>
<!--docid::SEC18::-->
<P>

These commands scroll the current window one screenful in the appropriate
direction.  They try to leave the cell cursor in approximately the same
place, so that <KBD>M-v</KBD> followed by <KBD>C-v</KBD> should leave the cell
cursor in the original cell.  In addition to these commands, there are
diagonal movements that are not bound to keys:
<CODE>scroll-upright</CODE>,
<CODE>scroll-upleft</CODE>,
<CODE>scroll-downright</CODE>,
<CODE>scroll-downleft</CODE>.
<A NAME="IDX57"></A>
<A NAME="IDX58"></A>
<A NAME="IDX59"></A>
<A NAME="IDX60"></A>
</P><P>

<DL COMPACT>
<DT><KBD>M-v</KBD>
<DD>Scroll up one screenful. (<CODE>scroll-up</CODE>)
<A NAME="IDX61"></A>
<A NAME="IDX62"></A>
<DT><KBD>C-v</KBD>
<DD>Scroll down one screenful. (<CODE>scroll-down</CODE>)
<A NAME="IDX63"></A>
<DT><KBD>C-x &#62;</KBD>
<DD>Scroll right one screenful. (<CODE>scroll-right</CODE>)
<A NAME="IDX64"></A>
<DT><KBD>C-x &#60;</KBD>
<DD>Scroll left one screenful. (<CODE>scroll-left</CODE>)
<A NAME="IDX65"></A>
</DL>
<P>

<A NAME="IDX66"></A>
<A NAME="IDX67"></A>
<A NAME="IDX68"></A>
<A NAME="IDX69"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC19"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC18"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC20"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC13"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.7 Using the mouse </H2>
<!--docid::SEC19::-->
<P>

It is possible to use to mouse to move the cell cursor.
<KBD>down-mouse-0</KBD> means to press the leftmost mouse button.
</P><P>

<DL COMPACT>
<DT><KBD>down-mouse-0</KBD>
<DD>Move to the cell pointed to by the mouse. (<CODE>mouse-goto</CODE>)
<A NAME="IDX70"></A>
<P>

<DT><KBD>down-mouse-1</KBD>
<DD>Set the mark to the cell pointed to by the mouse, but don't move the
cell cursor. (<CODE>mouse-mark</CODE>)
<A NAME="IDX71"></A>
<P>

<DT><KBD>down-mouse-2</KBD>
<DD>Set the mark to the current cell, and move to the cell pointed to by the
mouse. (<CODE>mouse-mark-and-goto</CODE>)
<A NAME="DOCF6" HREF="oleo.html#FOOT6">(6)</A>
<P>

<A NAME="IDX72"></A>
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC20"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC19"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC21"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.8 Regions and Variables </H2>
<!--docid::SEC20::-->
<P>

Variables are symbolic names for regions of a spreadsheet.  Once
defined, they can be used in cell formulas as region addresses.  They
can also be used as arguments to any command that expects a region
address.  A variable name should not be the name of a cell.  Thus,
<CODE>A1</CODE> is not a good name for a variable.
</P><P>

<DL COMPACT>
<DT><KBD>C-x :</KBD>
<DD>        Use this command to set a variable  (<CODE>set-variable</CODE>). For
<A NAME="IDX73"></A>
instance, to set the variable <CODE>test1</CODE> to the region <CODE>B2:C3</CODE>,
type
<TABLE><tr><td>&nbsp;</td><td><pre>        C-x :   test1    <KBD>RET</KBD>   B2:C3   <KBD>RET</KBD>
</pre></td></tr></table><P>

<DT><KBD>C-h v</KBD>
<DD>        Shows the value of a variable.  To find the value of
<CODE>test1</CODE>, type
<TABLE><tr><td>&nbsp;</td><td><pre>        C-h v test1 <KBD>RET</KBD>
</pre></td></tr></table>If the variable has not been defined you get an error. If you mistype
<CODE>test1</CODE> as <CODE>tset1</CODE>, you get the message
<TABLE><tr><td>&nbsp;</td><td><pre>        there is no 'tset1'
</pre></td></tr></table><P>

<DT><KBD>C-h C-v</KBD>
<DD>        This lists all variables and their current values.  
</DL>
<P>
<A NAME="IDX74"></A>
<A NAME="IDX75"></A>
<A NAME="IDX76"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC21"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC20"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC22"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.9 Getting Help </H2>
<!--docid::SEC21::-->
<DL COMPACT>
<DT><KBD>C-h</KBD>
<DD><A NAME="IDX77"></A>
        Enter into the help system.  The commands below give various
bits of information about Oleo.
<P>

<DT><KBD>C-h C</KBD>
<DD><A NAME="IDX78"></A>
When a complex command is being invoked (i.e., when Oleo is prompting
you for arguments), <KBD>C-x C</KBD> displays documentation for the
command being invoked.  This can often be used to get more information
about what is being prompted for.
<P>

<DT><KBD>C-h c</KBD>
<DD><A NAME="IDX79"></A>
        Give the name of the command (if any) associated with of the
next keystroke(s).  For instance, to find out command is executed when
you type  <KBD>M-p</KBD>, type
<KBD>C-h c M-p</KBD>. (<CODE>describe-key-briefly</CODE>)
<A NAME="IDX80"></A>
<P>

<DT><KBD>C-h k</KBD>
<DD><A NAME="IDX81"></A>
        Give a brief description of the command associated with the next
keystroke(s).  For instance, to find out what <KBD>M-p</KBD> does, type
<KBD>C-h k M-p</KBD>. (<CODE>describe-key</CODE>)
<A NAME="IDX82"></A>
<P>

<DT><KBD>C-h f</KBD>
<DD><A NAME="IDX83"></A>
        Give a  description of a command (one that you execute with
<KBD>M-x</KBD>).  For instance, to find out exactly what <SAMP>`scan-up'</SAMP> does,
type <KBD>C-h f scan-up</KBD>.  (<CODE>describe-function</CODE>)
<A NAME="IDX84"></A>
<P>

<DT><KBD>C-h F</KBD>
<DD><A NAME="IDX85"></A>
        Give a  description of a formula function.
For instance, to find out how to use  <SAMP>`@sum'</SAMP>,
type <KBD>C-h F sum</KBD>.  Note that even though <CODE>@sum</CODE> is used in
<CODE>a0</CODE> mode, you must type <KBD>C-h F sum</KBD>, not <KBD>C-h F @sum</KBD>.
(<CODE>describe-formula-function</CODE>) 
<A NAME="IDX86"></A>
<P>

<DT><KBD>C-h w</KBD>
<DD><A NAME="IDX87"></A>
        Give the key(s) (if any) that a command is bound to.  For
example, to find which keys <SAMP>`scan-up'</SAMP> is bound to, type
<KBD>C-h w scan-up</KBD>.  (<CODE>where-is</CODE>)
<A NAME="IDX88"></A>
<P>

<DT><KBD>C-h v</KBD>
<DD><A NAME="IDX89"></A>
        Show the value of a variable.  (<CODE>show-variable</CODE>)
<A NAME="IDX90"></A>
<P>

<DT><KBD>C-h C-v</KBD>
<DD><A NAME="IDX91"></A>
        Show the values of all the variables. (<CODE>show-all-variables</CODE>)
<A NAME="IDX92"></A>
<P>

<DT><KBD>C-h o</KBD>
<DD><A NAME="IDX93"></A>
        Show all the options that have been set. (<CODE>show-options</CODE>)
<A NAME="IDX94"></A>
<P>

<DT><KBD>C-h W</KBD>
<DD><A NAME="IDX95"></A>
        Display all the bindings of the keys. (<CODE>view-wallchart</CODE>)
<A NAME="IDX96"></A>
<P>

<DT><KBD>C-h C-w</KBD>
<DD><A NAME="IDX97"></A>
        Write all the bindings of the keys to a file. (<CODE>write-wallchart</CODE>)
<A NAME="IDX98"></A>
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC22"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC21"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC23"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.10 Saving and Reading Spreadsheets </H2>
<!--docid::SEC22::-->
<P>

<CODE>Oleo</CODE> can save a spreadsheet, visit a saved one, or merge with a
previously saved one.
</P><P>

<DL COMPACT>
<DT><KBD>C-x C-s</KBD>
<DD>Save the spreadsheet to a file, using the current
file-format. (<CODE>save-spreadsheet</CODE>)
<A NAME="IDX99"></A>
<A NAME="DOCF7" HREF="oleo.html#FOOT7">(7)</A>
<P>

<DT><KBD>C-x C-v</KBD>
<DD>Read in a file in the current
file-format.  This erases the current contents of the
spreadsheet first.  This may ask for confirmation.
(<CODE>visit-spreadsheet</CODE>)
<A NAME="IDX100"></A>
<P>

<DT><KBD>C-x i</KBD>
<DD>Read in a file and merge its contents into the
current spreadsheet.  Note that some file-formats, (like
panic-save) won't work with this command.
(<CODE>merge-spreadsheet</CODE>)
<A NAME="IDX101"></A>
<P>

<DT><KBD>M-x toggle-load-hooks</KBD>
<DD><A NAME="IDX102"></A>
Change whether load-hooks are run when spreadsheets are loaded.
When active, the find-alternate-spreadsheet command looks for a variable
called `load_hooks' and executes the macro at that address.
With a positive prefix argument, turns load hooks on.  With a negative
argument, turns them off.  With no argument, acts as a toggle.
<A NAME="DOCF8" HREF="oleo.html#FOOT8">(8)</A>
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC23"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC22"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC24"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.11 Command Line Options </H2>
<!--docid::SEC23::-->
<P>

At the command line, Oleo has several options
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>        oleo [options] [file]
</pre></td></tr></table></P><P>

where <CODE>file</CODE> is an optional spreadsheet to open.  The remaining
options are
</P><P>

<DL COMPACT>
<DT><CODE>-q</CODE>
<DD><DT><CODE>--quiet</CODE>
<DD>Be quiet. <A NAME="DOCF9" HREF="oleo.html#FOOT9">(9)</A>
<DT><CODE>-V</CODE>
<DD><DT><CODE>--version</CODE>
<DD>print out the version and exit
<DT><CODE>-h</CODE>
<DD><DT><CODE>--help</CODE>
<DD>Describe these options
<DT><CODE>-f</CODE>
<DD><DT><CODE>--ignore-init-file</CODE>
<DD>do not read the file <TT>`.oleorc'</TT> on startup
<DT><CODE>--nw</CODE>
<DD>do not use X-windows
<DT><CODE>-F x</CODE>
<DD><DT><CODE>--format x</CODE>
<DD>set the default file type to x (oleo, list, sc, ...)
<DT><CODE>--filter</CODE>
<DD>stdin/stdout are used for reading and writing the spreadsheet
Note this only works well for X Window System user interfaces,
or in very specific circumstances.
<DT><CODE>-s x</CODE>
<DD><DT><CODE>--separator x</CODE>
<DD>set separator for 'list' file type to x
<DT><CODE>-S</CODE>
<DD><DT><CODE>--space</CODE>
<DD>set separator for 'list' file type to a space
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC24"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC23"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC25"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.12 The <TT>`.oleorc'</TT> file </H2>
<!--docid::SEC24::-->
<P>

If there is a file <TT>`.oleorc'</TT> located in the home directory, it is
read when Oleo starts up.  For example, if you always want to use the
<CODE>a0</CODE> reference system, and wish to have the status line  on the bottom
line, rather than on the second line from the top, your <TT>`.oleorc'</TT>
file could be <A NAME="DOCF10" HREF="oleo.html#FOOT10">(10)</A>
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>        set-option a0
        set-option status -1
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC25"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC24"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC26"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.13 Expressions </H2>
<!--docid::SEC25::-->
<P>

<A NAME="HelpExpressions">
  A cell entry is a value or an expression of values 
(see section <A HREF="oleo.html#SEC30">2.1 The different values in Oleo</A>).
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC26">Infix expressions</A></TD><TD ALIGN="left">Infix Expressions</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC27">Examples</A></TD><TD ALIGN="left">Examples of infix expressions</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC28">Error values</A></TD><TD ALIGN="left">A List of Error Values</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC26"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC25"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC27"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC24"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC25"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.13.1 Infix Expressions </H3>
<!--docid::SEC26::-->
<P>

  The following infix expressions are defined.  Values labeled
<VAR>N1</VAR> and <VAR>N2</VAR> are numbers (floats or integers), <VAR>bool</VAR> booleans,
<VAR>str</VAR> strings, and <VAR>val</VAR> any type (but both sides must be the
same type).
</P><P>

<DL COMPACT>
<DT><CODE>-<VAR>N1</VAR></CODE>
<DD>  Arithmetic negation: 0-<VAR>N1</VAR>
<DT><CODE>!<VAR>bool</VAR></CODE>
<DD>  Logical negation: <CODE>#TRUE</CODE> if <VAR>bool</VAR> is <CODE>#FALSE</CODE>,
<CODE>#FALSE</CODE> if <CODE>#TRUE</CODE>, and an error otherwise.
<DT><CODE><VAR>N1</VAR> ^ <VAR>N2</VAR></CODE>
<DD>  Exponentiation.  Note that a^b^c is defined to be a^(b^c).
<DT><CODE><VAR>N1</VAR> * <VAR>N2</VAR></CODE>
<DD>        Multiplication
<DT><CODE><VAR>N1</VAR> / <VAR>N2</VAR></CODE>
<DD>        Division
<DT><CODE><VAR>N1</VAR> + <VAR>N2</VAR></CODE>
<DD>        Addition
<DT><CODE><VAR>N1</VAR> - <VAR>N2</VAR></CODE>
<DD>        Subtraction
<DT><CODE><VAR>N1</VAR> % <VAR>N2</VAR></CODE>
<DD>  Modulus; the remainder of <VAR>N1</VAR> / <VAR>N2</VAR>.
<DT><CODE><VAR>N1</VAR> &#62;=<VAR>N2</VAR></CODE>
<DD><CODE>#TRUE</CODE> if <VAR>N1</VAR> is greater than or equal to <VAR>N2</VAR>; else <CODE>#FALSE</CODE>
<DT><CODE><VAR>N1</VAR> &#62; <VAR>N2</VAR></CODE>
<DD><CODE>#TRUE</CODE> if <VAR>N1</VAR> is greater than  <VAR>N2</VAR>; else <CODE>#FALSE</CODE>
<DT><CODE><VAR>N1</VAR> &#60; <VAR>N2</VAR></CODE>
<DD><CODE>#TRUE</CODE> if <VAR>N1</VAR> is less than <VAR>N2</VAR>; else <CODE>#FALSE</CODE>
<DT><CODE><VAR>N1</VAR> &#60;=<VAR>N2</VAR></CODE>
<DD><CODE>#TRUE</CODE> if <VAR>N1</VAR> is less than or equal to <VAR>N2</VAR>; else <CODE>#FALSE</CODE>
<DT><CODE><VAR>val1</VAR> = <VAR>val2</VAR></CODE>
<DD>  Comparison: <CODE>#TRUE</CODE> if <VAR>val1</VAR> and <VAR>val2</VAR> can be
considered equal, <CODE>#FALSE</CODE> if not.  <VAR>val1</VAR> and <VAR>val2</VAR> can
be numbers, strings, or boolean values.
<DT><CODE><VAR>val1</VAR> != <VAR>val2</VAR></CODE>
<DD>  Equivalent to <CODE>!(<VAR>val1</VAR> = <VAR>val2</VAR>)</CODE>.
<DT><CODE><VAR>str1</VAR> &#38; <VAR>str2</VAR></CODE>
<DD>  Text concatenation of strings.
<DT><CODE><VAR>bool</VAR> ? <VAR>val1</VAR> : <VAR>val2</VAR></CODE>
<DD>  Like the C operator: if <VAR>bool</VAR> is <CODE>#TRUE</CODE>, <VAR>val1</VAR> is
evaluated; if <VAR>bool</VAR> is <CODE>#FALSE</CODE>, <VAR>val2</VAR> is evaluated;
otherwise an error is returned.
<DT><CODE>(<VAR>expr</VAR>)</CODE>
<DD>  Overrides default precedence of expression <VAR>expr</VAR>.  Note that
since Oleo stores expressions in a byte-compiled form, unneeded
parentheses will mysteriously vanish.
</DL>
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC27">1.13.2 Examples</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC28">1.13.3 Error Values</A></TD><TD ALIGN="left"></TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC27"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC26"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC28"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC24"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC25"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.13.2 Examples </H3>
<!--docid::SEC27::-->
<P>

Assume that the spreadsheet contains the figure below, where the
block of X's marks the cursor.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

                 |  C  |  D  |  
                 |     |     |   
              --------------------
                 |     |     |   
              2  |  3  |     |   
              --------------------
                 |     |     |   
              3  | "A" | "B" |   
              --------------------
                 | XXX |     |   
               4 | XXX |  7  |   
              --------------------
</pre></td></tr></table></P><P>

Here are some computations in  <CODE>a0</CODE> mode.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>                C2 * D4    =>     21
</P><P>

                D4 % C2    =>     1
</P><P>

                C2 = D4    =>     #FALSE
</P><P>

                C3 &#60; D3    =>     #TRUE
</P><P>

                C3 &#38; D3    =>     "AB"
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC28"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC27"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC24"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC25"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 1.13.3 Error Values </H3>
<!--docid::SEC28::-->
<P>

<A NAME="HelpErrorValues">
</P><P>

  Error values are returned by the parser under various error
conditions, such as invalid parameters to functions, badly formatted
expressions, etc.
</P><P>

<DL COMPACT>
<DT><CODE>#TRUE</CODE>
<DD><DT><CODE>#FALSE</CODE>
<DD>  The boolean true and false values.  Not really errors, but classified
as such to distinguish them from numbers and strings.
<DT><CODE>#ERROR</CODE>
<DD>  An unclassified error.
<DT><CODE>#BAD_INPUT</CODE>
<DD>  Indicates an inappropriate parameter to a formula function.
<DT><CODE>#NON_NUMBER</CODE>
<DD>  A numerical value was expected.
<DT><CODE>#NON_STRING</CODE>
<DD>  A string value was expected.
<DT><CODE>#NON_BOOL</CODE>
<DD>  A boolean value was expected.
<DT><CODE>#NON_RANGE</CODE>
<DD>  A range value was expected.
<DT><CODE>#OUT_OF_RANGE</CODE>
<DD>  An out-of-range value was given, such as a cell coordinate outside a
given cell range.
<DT><CODE>#NO_VALUES</CODE>
<DD>  An error value.
<DT><CODE>#DIV_BY_ZERO</CODE>
<DD>  A division by zero was attempted.
<DT><CODE>#BAD_NAME</CODE>
<DD>  An error value that indicates an invalid variable name.  It may be the
symptom of an incorrectly written address, or a string literal given
without double quotes.
<DT><CODE>#NOT_AVAIL</CODE>
<DD>  An error value.
<DT><CODE>#PARSE_ERROR</CODE>
<DD>  A generic error value that indicates the parser failed to parse an
expression.
<DT><CODE>#NEED_OPEN</CODE>
<DD>  An open parenthesis is missing.
<DT><CODE>#NEED_CLOSE</CODE>
<DD>  A close parenthesis is missing.
<DT><CODE>#NEED_QUOTE</CODE>
<DD>  A quote was expected; e.g., the terminating quote of a string literal.
<DT><CODE>#UNK_CHAR</CODE>
<DD>  An unknown character was encountered.
<DT><CODE>#UNK_FUNC</CODE>
<DD>  An unknown function was called.
<DT><CODE>#INF</CODE>
<DD><DT><CODE>#INFINITY</CODE>
<DD><DT><CODE>#NINF</CODE>
<DD><DT><CODE>#MINUS_INFINITY</CODE>
<DD><DT><CODE>#NAN</CODE>
<DD><DT><CODE>#NOT_A_NUMBER</CODE>
<DD>  Various floating-point exceptions.  On some machines these may be all
the same value, or indistinguishable from other values.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC29"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC28"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC30"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC1"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 2. Entering Data </H1>
<!--docid::SEC29::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC30">2.1 The different values in Oleo</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC31">Entering</A></TD><TD ALIGN="left">Entering values in a cell</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC32">Input Editing</A></TD><TD ALIGN="left">Editing in the input line</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC33">Cell Motion</A></TD><TD ALIGN="left">Moving to the next input cell while editing</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC30"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC31"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.1 The different values in Oleo </H2>
<!--docid::SEC30::-->
<P>

A value can be a literal (an immediate value, like <CODE>"foo"</CODE>,
<CODE>16</CODE>, or <CODE>#TRUE</CODE>), a function call, or another expression.
There are 5 types of values:
</P><P>

<UL>
<LI>Integers.
<LI>Floats, expressed in the usual format:
[<CODE>-</CODE>]<VAR>nnn</VAR>[<CODE>.</CODE><VAR>nnn</VAR>][<CODE>e</CODE>[<CODE>-</CODE>]<VAR>nnn</VAR>],
e.g., -103.14e-7 or .00000012 or 103.14.
<A NAME="IDX103"></A>
<LI>Strings, which are surrounded by double quotes.  To include
unusual characters, you can either quote them with a backslash (e.g.,
<CODE>"This is \"quoted\"."</CODE>) or use an octal escape code: 
<SAMP>`\<VAR>nnn</VAR>'</SAMP>
where <VAR>nnn</VAR> is the octal code for the ASCII value of the character.
<LI>Expressions, such as <CODE>@sum(A1.B3)</CODE>, or <CODE>A1 + B2</CODE>.
<LI>Errors, which have alphabetic names and start with a <SAMP>`#'</SAMP>
sign.
<LI>Booleans, which are "error" values of either <CODE>#TRUE</CODE> or
<CODE>#FALSE</CODE>.
<A NAME="IDX104"></A>
</UL>
<P>

<HR SIZE="6">
<A NAME="SEC31"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC30"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC32"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.2 Entering values in a cell </H2>
<!--docid::SEC31::-->
To enter values into an empty cell, simply start typing.  
To replace the contents of a cell or of all cells in a region, use
<P>

<DL COMPACT>
<DT><KBD>=</KBD>
<DD>        Replace the contents of the current cell. (<CODE>set-cell</CODE>)
<A NAME="IDX105"></A>
<DT><KBD>M-=</KBD>
<DD>        Replace the contents of a region. (<CODE>set-cell-region</CODE>)
<A NAME="IDX106"></A>
</DL>
<P>
<A NAME="IDX107"></A>
<A NAME="IDX108"></A>
</P><P>

For example, to put the numbers 2,3,...,11 in the  cells from <CODE>B1</CODE> to
<CODE>B10</CODE>, type
<TABLE><tr><td>&nbsp;</td><td><pre>        <KBD>M-=</KBD>  B1.B10   <KBD>RET</KBD>   @row()+1   <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC32"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC31"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC33"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.3 Editing in the input line </H2>
<!--docid::SEC32::-->
<P>

When the spreadsheet is reading text input, you can use a few
text-editing commands.  Note that there in no history mechanism and no
yank command.  If you accidentally type <KBD>C-u</KBD>, the text is <EM>erased</EM>.
<A NAME="DOCF11" HREF="oleo.html#FOOT11">(11)</A>
</P><P>

While the input area is active, the commands that move the cell cursor
are disabled.  If you want to move the cell cursor, use the
other-window command (<KBD>C-x o</KBD>) to leave and later reenter the input area.
</P><P>

<DL COMPACT>
<DT><KBD>M-a</KBD>
<DD>Insert/over-write an absolute reference to the
current cell/region. (<CODE>insert-abs-ref</CODE>)
<A NAME="IDX109"></A>
<DT><KBD>M-r</KBD>
<DD>Insert/over-write a relative reference to the
current cell/region. (<CODE>insert-rel-ref</CODE>)
<A NAME="IDX110"></A>
<DT><KBD>C-e</KBD>
<DD>Insert/over-write the expression in the
current cell into the input area. (<CODE>insert-cell-expression</CODE>)
<A NAME="IDX111"></A>
<DT><KBD>M-e</KBD>
<DD>Insert/over-write the value (not the formula) of the current
cell into the input area. (<CODE>insert-cell-value</CODE>)
<A NAME="IDX112"></A>
<DT><KBD>C-a</KBD>
<DD>Move the cursor to the beginning of the text. (<CODE>cursor-begin-line</CODE>)
<A NAME="IDX113"></A>
<DT><KBD>C-e</KBD>
<DD>Move to the end of the text. (<CODE>cursor-end-line</CODE>)
<A NAME="IDX114"></A>
<DT><KBD>C-b</KBD>
<DD>Move the cursor back a character. (<CODE>cursor-back-char</CODE>)
<A NAME="IDX115"></A>
<DT><KBD>M-b</KBD>
<DD>Move back a word. (<CODE>cursor-back-word</CODE>)
<A NAME="IDX116"></A>
<DT><KBD>C-f</KBD>
<DD>Move forward a character. (<CODE>cursor-fwd-char</CODE>)
<A NAME="IDX117"></A>
<DT><KBD>M-f</KBD>
<DD>Move forward a word. (<CODE>cursor-fwd-word</CODE>)
<A NAME="IDX118"></A>
<DT><KBD>C-d</KBD>
<DD>Delete the character under the cursor. (<CODE>delete-next-char</CODE>)
<A NAME="IDX119"></A>
<DT><KBD>M-d</KBD>
<DD>Delete the word under the cursor.  (<CODE>delete-next-word</CODE>)
<A NAME="IDX120"></A>
<DT><KBD>C-?</KBD>
<DD>Delete the character to the left of the cursor. (<CODE>delete-prev-char</CODE>)
<A NAME="IDX121"></A>
<DT><KBD>M-C-?</KBD>
<DD>Delete the word to the left of the cursor. (<CODE>delete-prev-word</CODE>)
<A NAME="IDX122"></A>
<DT><KBD>C-k</KBD>
<DD>Delete from the cursor to the end of the text. (<CODE>delete-to-end</CODE>)
<A NAME="IDX123"></A>
<DT><KBD>C-o</KBD>
<DD>Move the cursor into the cell area.
</DL>
<P>
<A NAME="IDX124"></A>
<A NAME="IDX125"></A>
<A NAME="IDX126"></A>
<A NAME="IDX127"></A>
<A NAME="IDX128"></A>
<A NAME="IDX129"></A>
<A NAME="IDX130"></A>
<A NAME="IDX131"></A>
<A NAME="IDX132"></A>
<A NAME="IDX133"></A>
<A NAME="IDX134"></A>
<A NAME="IDX135"></A>
<A NAME="IDX136"></A>
<A NAME="IDX137"></A>
<A NAME="IDX138"></A>
<A NAME="IDX139"></A>
</P><P>

The following commands are not bound to any keys
<DL COMPACT>
<DT><CODE>toggle-overwrite</CODE>
<DD><A NAME="IDX140"></A>
Toggle between overwrite and insert mode.
<DT><CODE>delete-to-start</CODE>
<DD><A NAME="IDX141"></A>
 Deletes from the cursor to the beginning of the line
</DL>
<P>

<A NAME="IDX142"></A>
</P><P>

Almost all editing commands remember what you typed the last time you used
that command, and start you up editing a copy of that text.  If you want to
type in something completely new, just type <KBD>C-x</KBD> (or <KBD>C-u</KBD>) and
type in your new text.
</P><P>

<HR SIZE="6">
<A NAME="SEC33"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC32"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 2.4 Moving to the next input cell while editing </H2>
<!--docid::SEC33::-->
<P>

When you are finished entering data in a cell, you type <KBD>RET</KBD>. If
you wish to enter data in the cell below, type either <KBD>C-i</KBD> or the
down-arrow key, and you are
placed in the  cell below, waiting for input.  If you type the up-arrow
key, you are placed in the cell above, waiting for input.
If you type <KBD>C-j</KBD>, you
move to the right.  The direction of <KBD>C-i</KBD> can be changed - the
commands are  given below.  For example, if you wish to move upwards when you
type <KBD>C-i</KBD>, type <CODE>C-x m ^</CODE>.
</P><P>

<DL COMPACT>
<DT><KBD>C-i</KBD>
<DD>Enter the data, and move to next cell.  The tab key also does this.
(<CODE>next-edit</CODE>)
<A NAME="IDX143"></A>
<DT><KBD>C-j</KBD>
<DD>Enter the data, and move to next cell in alternative direction
(<CODE>next-edit-set</CODE>)
<A NAME="IDX144"></A>
<DT><KBD>C-x m ^</KBD>
<DD><CODE>auto-move-up</CODE>
<DT><KBD>C-x m v</KBD>
<DD><CODE>auto-move-down</CODE>
<DT><KBD>C-x m &#60;</KBD>
<DD><CODE>auto-move-left</CODE>
<DT><KBD>C-x m &#62;</KBD>
<DD><CODE>auto-move-right</CODE>
<DT><KBD>C-x m `</KBD>
<DD><CODE>auto-move-up-left</CODE>
<DT><KBD>C-x m '</KBD>
<DD><CODE>auto-move-up-right</CODE>
<DT><KBD>C-x m /</KBD>
<DD><CODE>auto-move-down-left</CODE>
<DT><KBD>C-x m \</KBD>
<DD><CODE>auto-move-down-right</CODE>
<DT><KBD>C-x m</KBD>
<DD><CODE>auto-move-no-motion</CODE>
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC34"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC33"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC35"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC29"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 3. Making Changes </H1>
<!--docid::SEC34::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC35">Copying</A></TD><TD ALIGN="left">Copying cells and regions</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC36">Moving</A></TD><TD ALIGN="left">Moving Cells and regions</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC37">Deleting</A></TD><TD ALIGN="left">Deleting cells and regions        </TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC38">Insertion</A></TD><TD ALIGN="left">Inserting a new row or column</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC35"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC36"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.1 Copying </H2>
<!--docid::SEC35::-->
Both the cells, and the calculated values in the cells, can be copied
from one location to another. Note, however, that any relative cell
addresses present in formulas will refer to different cells -- those at
the same offset from the new location.  In <CODE>a0</CODE> mode, this means
that the relative addresses in the new locations' formula(s) will change
to reflect the new cells they refer to.
<P>

<DL COMPACT>
<DT><KBD>M-c</KBD>
<DD>        Copy a region.  Given two ranges, it copies the source
range into the destination range.  If the destination range size is a
multiple of the source range size, the source range is copied
multiple times.  If the destination range is given as a cell, that
cell is the location of the top-left corner of the destination range.
(<CODE>copy-region</CODE>)
<A NAME="IDX145"></A>
<DT><KBD>M-C-c</KBD>
<DD>Copy just the values of one region to another.
(<CODE>copy-values-in-region</CODE>)
<A NAME="IDX146"></A>
</DL>
<P>
<A NAME="IDX147"></A>
<A NAME="IDX148"></A>
</P><P>

Consider the  spreadsheet, where <CODE>B2</CODE> contains <CODE>@sum(C2.D2)</CODE>:
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

             | Col B | Col C | Col D |
       ------|-------|-------|-------|
       Row 2 |   8   |   3   |   5   |
       ------|-------|-------|-------|
       Row 3 |       |   4   |   2   |
       ------|-------|-------|-------|
       Row 4 |       |   1   |   3   |
       ------|-------|-------|-------|
</P><P>

</pre></td></tr></table></P><P>

If you type <CODE><KBD>M-c</KBD> B2 <KBD>RET</KBD> B3.B4</CODE>, then <CODE>B2</CODE> is
unchanged, but <CODE>B3</CODE> contains <CODE>@sum(C3.D3)</CODE>, since it was
copied from a formula with relative addresses. Similarly, <CODE>B4</CODE>
contains <CODE>@sum(C4.D4)</CODE>.  The display shows
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

             | Col B | Col C | Col D |
       ------|-------|-------|-------|
       Row 2 |   8   |   3   |   5   |
       ------|-------|-------|-------|
       Row 3 |   6   |   4   |   2   |
       ------|-------|-------|-------|
       Row 4 |   4   |   1   |   3   |
       ------|-------|-------|-------|
</P><P>

</pre></td></tr></table></P><P>

If you had typed <CODE><KBD>M-C-c</KBD> B2 <KBD>RET</KBD> B3.B4</CODE>, then <CODE>B2</CODE>
is unchanged, <CODE>B3</CODE> contains 8, <CODE>B4</CODE> contains 8, and the
display shows
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

             | Col B | Col C | Col D |
       ------|-------|-------|-------|
       Row 2 |   8   |   3   |   5   |
       ------|-------|-------|-------|
       Row 3 |   8   |   4   |   2   |
       ------|-------|-------|-------|
       Row 4 |   8   |   1   |   3   |
       ------|-------|-------|-------|
</P><P>

</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC36"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC35"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC37"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.2 Moving Cells and Regions </H2>
<!--docid::SEC36::-->
<P>

<DL COMPACT>
<DT><KBD>M-m</KBD>
<DD>This is similar to copy-region, except that the source region is erased
after the copy.  The two ranges must be the same size.  Relative
addresses and variables whose ranges are inside the source region are
adjusted, as with <CODE>copy-region</CODE>. <A NAME="DOCF12" HREF="oleo.html#FOOT12">(12)</A>
 (<CODE>move-region</CODE>)
<A NAME="IDX149"></A>
</DL>
<P>
<A NAME="IDX150"></A>
</P><P>

Consider the previous spreadsheet, where <CODE>B2</CODE> contains
<CODE>@sum(C2.D2)</CODE>.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

             | Col B | Col C | Col D |
       ------|-------|-------|-------|
       Row 2 |   8   |   3   |   5   |
       ------|-------|-------|-------|
       Row 3 |       |   4   |   2   |
       ------|-------|-------|-------|
       Row 4 |       |   1   |   3   |
       ------|-------|-------|-------|
</P><P>

</pre></td></tr></table></P><P>

If we type <CODE><KBD>M-m</KBD>  B2  <KBD>RET</KBD>  B3</CODE>, then <CODE>B2</CODE> is empty,
<CODE>B3</CODE> contains <CODE>@sum(C3.D3)</CODE>, and the display shows 
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

             | Col B | Col C | Col D |
       ------|-------|-------|-------|
       Row 2 |       |   3   |   5   |
       ------|-------|-------|-------|
       Row 3 |   6   |   4   |   2   |
       ------|-------|-------|-------|
       Row 4 |       |   1   |   3   |
       ------|-------|-------|-------|
</P><P>

</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC37"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC36"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC38"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.3 Deleting </H2>
<!--docid::SEC37::-->
<P>

<DL COMPACT>
<DT><KBD>C-k</KBD>
<DD><A NAME="IDX151"></A>
        Delete the current row.  With an argument count it deletes
several rows. (<CODE>delete-row</CODE>) For instance, to delete the row
containing the cell cursor, and the next 4 rows, type <CODE>C-u 5 C-k</CODE>.
<DT><KBD>M-k</KBD>
<DD>        Delete the current column.  With an argument count it deletes
several columns. (<CODE>delete-col</CODE>) For instance, to delete the column that
<A NAME="IDX152"></A>
the cell cursor is in, and the 3 columns to the right, type <CODE>C-u 4 M-k</CODE>.
<DT><KBD>M-C-?</KBD>
<DD>Delete the contents (value, formula, format, etc) of a
region.  This DOES NOT ask for confirmation.
        (<CODE>delete-region</CODE>)
<A NAME="IDX153"></A>
<DT><KBD>M-x clear-spreadsheet</KBD>
<DD>        This is an extreme action!  Erase all the values in the cells,
and reset all the heights and widths.
</DL>
<P>
<A NAME="IDX154"></A>
<A NAME="IDX155"></A>
<A NAME="IDX156"></A>
<A NAME="IDX157"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC38"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC37"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.4 Inserting Rows and Columns </H2>
<!--docid::SEC38::-->
<P>

These commands insert blank rows and columns.
</P><P>

<DL COMPACT>
<DT><KBD>C-o</KBD>
<DD>        Insert a row above the cell cursor.  With an argument count it adds
several rows. (<CODE>insert-row</CODE>) For instance, to add 5 rows above
<A NAME="IDX158"></A>
the cell cursor, type <CODE>C-u 5 C-o</CODE>.
<DT><KBD>M-o</KBD>
<DD>        Insert a column to the left of the cell cursor.  With an
argument count it adds several columns. (<CODE>insert-col</CODE>) For instance,
<A NAME="IDX159"></A>
to add 4 rows to the left of  the cell cursor, type <CODE>C-u 4 M-o</CODE>.
</DL>
<P>
<A NAME="IDX160"></A>
<A NAME="IDX161"></A>
<HR SIZE="6">
<A NAME="SEC39"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC38"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC40"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC34"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 4. Style </H1>
<!--docid::SEC39::-->
<P>

<A NAME="HelpFormats">
</P><P>

It is often important to change how the value of a cell is displayed.
It is possible to change the height and width of a cell, the font used
in a cell, the alignment and protection of a cell, and the formats
used to represent numbers.  Entire rows and columns can be hidden.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC40">Alignment</A></TD><TD ALIGN="left">Aligning cell entries</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC41">Formats for numbers</A></TD><TD ALIGN="left">Formats for numbers</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC46">Cell Height </A></TD><TD ALIGN="left">Changing the height of cells</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC47">Width of Cells</A></TD><TD ALIGN="left">Changing the width of cells</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC48">Hidden Rows and Columns</A></TD><TD ALIGN="left">Creating hidden rows and columns</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC49">Protection</A></TD><TD ALIGN="left">Protecting cells</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC50">Fonts (in X11)</A></TD><TD ALIGN="left">Working with X11 Fonts</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC40"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC41"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.1 Alignment </H2>
<!--docid::SEC40::-->
An entry in a cell can be aligned on the left, on the right, or
centered.   All cells in a region can have their alignment set.
The default is left alignment.
<P>

<DL COMPACT>
<DT><KBD>M-a a</KBD>
<DD>Change the alignment of the cell under the cursor.  The options are 
<KBD>def</KBD> (the default), <KBD>l</KBD> (left), <KBD>r</KBD> (right), and <KBD>c</KBD>
(center).
(<CODE>set-cell-alignment</CODE>).
<A NAME="IDX162"></A>
<DT><KBD>M-r a</KBD>
<DD>Change the alignment of a region.  The options are 
the same as above.
(<CODE>set-region-alignment</CODE>).
<A NAME="IDX163"></A>
<DT><KBD>M-d a</KBD>
<DD>Change the default alignment.  The options are 
<KBD>l</KBD> (left), <KBD>r</KBD> (right), and <KBD>c</KBD>
(center).
(<CODE>set-default-alignment</CODE>).
<A NAME="IDX164"></A>
</DL>
<P>
<A NAME="IDX165"></A>
<A NAME="IDX166"></A>
<A NAME="IDX167"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC41"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC40"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC42"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC46"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.2 Formats for numbers </H2>
<!--docid::SEC41::-->
Oleo can display numbers in a variety of formats.  In addition to
sixteen user-defined formats, you can choose from a variety of simple
formats.  You can set the format for a cell, for a region, and change
the default format.
<P>

<DL COMPACT>
<DT><KBD>M-a f</KBD>
<DD>Change the format of the cell under the cursor.  The options include 
<VAR>integer</VAR>, <VAR>float</VAR>, <VAR>hidden</VAR>, <VAR>graph</VAR>, <VAR>general.X</VAR>,
<VAR>dollar.X</VAR>, <VAR>comma.X</VAR>, <VAR>comma.X</VAR>, <VAR>percent.X</VAR>,
<VAR>fixed.X</VAR>, <VAR>exponent.X</VAR>,  where <VAR>X</VAR> is an integer from 0 to
14, or the word <VAR>float</VAR>.
(<CODE>set-cell-format</CODE>).
<A NAME="IDX168"></A>
<DT><KBD>M-r f</KBD>
<DD>Change the format of a region.  The options are 
the same as above.
(<CODE>set-region-format</CODE>).
<A NAME="IDX169"></A>
<DT><KBD>M-d f</KBD>
<DD>Change the default format.  The options are as above.
(<CODE>set-default-format</CODE>).
<A NAME="IDX170"></A>
</DL>
<P>
<A NAME="IDX171"></A>
<A NAME="IDX172"></A>
<A NAME="IDX173"></A>
</P><P>

There are some examples following a description of the simple and
general formats.
</P><P>

<HR SIZE="6">
<A NAME="SEC42"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC41"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC43"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC40"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC41"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC46"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 4.2.1 Simple Formats </H3>
<!--docid::SEC42::-->
<P>

<DL COMPACT>
<DT><CODE>integer</CODE>
<DD>The number is rounded to an integer before being displayed.
<P>

<DT><CODE>float</CODE>
<DD>The number is displayed in normal, everyday notation, using
whatever precision is needed (or fits).
<P>

<DT><CODE>hidden</CODE>
<DD>The number is not displayed.  It is recalculated, etc as
normal, but the cell is displayed as if it were empty.
<P>

<DT><CODE>graph</CODE>
<DD>The number is displayed as a small graph.  If the number is
close to zero, it will be displayed as '0', If it is positive,
a row of '+'-es is displayed.  If it is negative, a row of
'-'-es is displayed.  For instance, the number 4.234 is displayed as 
<VAR>++++</VAR>, and the number -5.2 is displayed as <VAR>-----</VAR>.  
If the number has absolute value greater than 70 <A NAME="DOCF13" HREF="oleo.html#FOOT13">(13)</A>, then a string of 35 #'s is displayed.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC43"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC42"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC44"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC40"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC41"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC46"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 4.2.2 General Formats </H3>
<!--docid::SEC43::-->
<P>

The following formats require a precision.  The precision may be a number
from zero to 14, in which case that number of digits will always be displayed
after the decimal point (zero-padding or rounding the number as needed), or
the precision may be 'float', in which case Oleo will use as many digits as
necessary.  
</P><P>

<DL COMPACT>

<DT><CODE>general</CODE>
<DD>This uses either normal or scientific notation, depending on
the magnitude of the number and the width of the column.
<P>

<DT><CODE>dollar</CODE>
<DD>Positive values are preceeded by '$', (so 3 is displayed as
'$3').  Negative values are parenthesized (so -3 is displayed
as '($3)'), and all large values have a ',' every three
digits (so 1000 is displayed as '$1,000').
<P>

<DT><CODE>comma</CODE>
<DD>This is like the dollar option, but without the '$'.  Positive numbers
are presented normally, and negative ones are in parenthesis.  
<P>

<DT><CODE>percent</CODE>
<DD>The value is multiplied by 100, and is displayed with a
trailing '%'.  Thus .01 displays as '1%', while 1 displays as
'100%'.
<P>

<DT><CODE>fixed</CODE>
<DD>The number is displayed in normal, everyday notation, using
the precision specified.  'fixed.float' is the same as
'float'.  'fixed.0' is the same as 'integer'.
<P>

<DT><CODE>exponent</CODE>
<DD>The number is displayed in scientific notation.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC44"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC43"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC45"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC40"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC41"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC46"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 4.2.3 StyleExamples </H3>
<!--docid::SEC44::-->
<P>

Suppose that a cell contains <SAMP>`1234.567'</SAMP>.  If we set the format of
the cell to the left hand column, the cell is displayed as in the right
hand column:
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>           integer          1234
           hidden
           general.float    1234.567
           general.1        1234.6
           dollar.0       $1,234
           dollar.2       $1,234.57
           comma.1         1,234.6
           percent.0      123457%
           fixed.1          1234.6
           exponent.2        123e+03
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC45"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC44"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC46"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC40"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC41"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC46"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 4.2.4 User Defined Formats </H3>
<!--docid::SEC45::-->
<P>

You can define up  to sixteen user-defined numeric formats.
The current parts of a format are in the table below.
We use the definition of the 'dollar' format for an example.
<A NAME="DOCF14" HREF="oleo.html#FOOT14">(14)</A>
</P><P>

<DL COMPACT>

<DT><CODE>Example:</CODE>
<DD>                What it is:
<DT><CODE>$</CODE>
<DD>                What to print before positive numbers.
<DT><CODE>(</CODE>
<DD>                What to print before negative numbers.
<DT><CODE></CODE>
<DD>                What to print after positive numbers.
<DT><CODE>)</CODE>
<DD>                What to print after negative numbers.
<DT><CODE>$0</CODE>
<DD>                What to print if the number is zero.
<DT><CODE>,</CODE>
<DD>                What to print between the thousands and the 	hundreds, etc.
<DT><CODE>.</CODE>
<DD>                What to print for a decimal point.
<P>

<DT><CODE>0-14</CODE>
<DD><DT><CODE>float</CODE>
<DD>The number of digits to print after the decimal point.
'float' means use however many digits are needed, or
however many will fit, whichever is less. . .
<P>

<DT><CODE>number</CODE>
<DD>What to multiply the value by before printing.
Most often this will be one, but it might be 100 if
you're printing percentages, or .000001 if you're
printing in megabucks.  (Beware of overflow!)
<P>

</DL>
<P>

Some advice: do not use digits for the headers, trailers, the comma, or
the decimal point 
symbol.  Using digits will confuse the internal routines and produce
incomprehensible results. . .  <A NAME="DOCF15" HREF="oleo.html#FOOT15">(15)</A>
</P><P>

<HR SIZE="6">
<A NAME="SEC46"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC45"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC47"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC41"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.3 Changing the height of cells </H2>
<!--docid::SEC46::-->
The height of all the cells in a row is the same.  The default height of a
row is 1.  A row of height 0 is not displayed, but is still updated just
as if it were visible.
<A NAME="DOCF16" HREF="oleo.html#FOOT16">(16)</A>
<P>

<DL COMPACT>
<DT><KBD>M-a h</KBD>
<DD>Change the height of the row containing the cell cursor.  The options are 
a non-negative integer, or <KBD>def</KBD>.
(<CODE>set-cell-height</CODE>).
<A NAME="IDX174"></A>
<DT><KBD>M-r h</KBD>
<DD>Change the height of all cells in a region.  The options are 
the same as above.
(<CODE>set-region-height</CODE>).
<A NAME="IDX175"></A>
<DT><KBD>M-d h</KBD>
<DD>Change the default height to a positive integer.
(<CODE>set-default-height</CODE>).
<A NAME="IDX176"></A>
</DL>
<P>
<A NAME="IDX177"></A>
<A NAME="IDX178"></A>
<A NAME="IDX179"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC47"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC46"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC48"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.4 Changing the width of cells </H2>
<!--docid::SEC47::-->
The width of all the cells in a column is the same.  The default width of a
column is 11.  <A NAME="DOCF17" HREF="oleo.html#FOOT17">(17)</A>  A column of width 0 is not displayed.
<P>

<DL COMPACT>
<DT><KBD>M-a w</KBD>
<DD>Change the width of the column containing the  cell cursor.  The options are 
a non-negative integer, or <KBD>def</KBD>.
(<CODE>set-cell-width</CODE>).
<A NAME="IDX180"></A>
<DT><KBD>M-r w</KBD>
<DD>Change the width of all cells in a region.  The options are 
the same as above.
(<CODE>set-region-width</CODE>).
<A NAME="IDX181"></A>
<DT><KBD>M-d w</KBD>
<DD>Change the default width to a positive integer.
(<CODE>set-default-width</CODE>).
<A NAME="IDX182"></A>
</DL>
<P>
<A NAME="IDX183"></A>
<A NAME="IDX184"></A>
<A NAME="IDX185"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC48"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC47"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC49"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.5 Creating Hidden Rows and Columns </H2>
<!--docid::SEC48::-->
Rows and columns of the spreadsheet can be hidden, so that they do not
appear on the screen.  They continue to exist, and are updated when
necessary.  The following  hides the third column in <CODE>a0</CODE> mode
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>           M-x set-region-width <KBD>RET</KBD> <VAR>C1</VAR> <KBD>RET</KBD> 0 <KBD>RET</KBD>
</pre></td></tr></table></P><P>

or more simply,
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>           M-r w <VAR>C1</VAR> <KBD>RET</KBD> 0 <KBD>RET</KBD>
</pre></td></tr></table></P><P>

 This  hides the third row in <CODE>noa0</CODE> mode
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>           M-r h <KBD>RET</KBD> <VAR>R3C1</VAR> <KBD>RET</KBD> 0 <KBD>RET</KBD>
</pre></td></tr></table></P><P>

If the cell cursor is located at any cell in the third column, then we
can  hide the third column column:
<TABLE><tr><td>&nbsp;</td><td><pre>           M-a w  0 <KBD>RET</KBD>
</pre></td></tr></table></P><P>

Similarly, if the cell cursor is in the fourth row, we can hide the
fourth row:
<TABLE><tr><td>&nbsp;</td><td><pre>           M-a h  0 <KBD>RET</KBD>
</pre></td></tr></table></P><P>

To make a row visible again, just set its height to some positive value.
</P><P>

<HR SIZE="6">
<A NAME="SEC49"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC48"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC50"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.6 Protection </H2>
<!--docid::SEC49::-->
A cell can be protected.  For example, if cell <CODE>E5</CODE> is protected,
and you attempt to enter data into it, you are  not allowed to.  Instead, you
get the message
<TABLE><tr><td>&nbsp;</td><td><pre>        Cell C5 is locked.
</pre></td></tr></table>Moreover, all the cells in a region can be protected.  It is also
possible to make 
the default protection "locked", so that all cells are 
automatically locked.
<P>

The default is that all cells are unlocked.
<DL COMPACT>
<DT><KBD>M-a p</KBD>
<DD>Change the protection of a cell.  The options are 
<KBD>def</KBD> (the default), <KBD>p</KBD> (protect, or lock), and <KBD>u</KBD>
(unprotect, or unlock).
(<CODE>set-cell-protection</CODE>).
<A NAME="IDX186"></A>
<DT><KBD>M-r p</KBD>
<DD>Change the protection of a region.  The options are 
the same as above.
(<CODE>set-region-protection</CODE>).
<A NAME="IDX187"></A>
<DT><KBD>M-d p</KBD>
<DD>Change the default protection.  The options are 
<KBD>p</KBD> (protect, or lock), and <KBD>u</KBD>
(unprotect, or unlock).
(<CODE>set-default-protection</CODE>).
<A NAME="IDX188"></A>
</DL>
<P>
<A NAME="IDX189"></A>
<A NAME="IDX190"></A>
<A NAME="IDX191"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC50"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC49"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.7 Fonts (in X11) </H2>
<!--docid::SEC50::-->
<P>

The default cell font is 12 point times-roman.
The easiest way to specify a font is to use one of the built-in
short-hand names.  These names are `fixed', `times', and `courier'.
Optionally, these names can be followed by a scale.  The scale is the
ratio of the default point size to the desired point size. For
example, if the default font is a 10 point font, then `times 1.2'
refers to a 12 point Times-Roman type font.
</P><P>

<DL COMPACT>
<DT><KBD>M-a o</KBD>
<DD>        Use this command to set the font in a cell.  For instance, to
set the current cell to <SAMP>`times-roman'</SAMP> at 24pt, type
<TABLE><tr><td>&nbsp;</td><td><pre>        M-a o times <KBD>RET</KBD> 2.0  <KBD>RET</KBD>
</pre></td></tr></table>Since the default size is 12pt, the 2.0 magnification factor makes the
size 24 points. (<CODE>set-cell-font</CODE>)
<A NAME="IDX192"></A>
<P>

<DT><KBD>M-r o</KBD>
<DD>        Use this command to set the font in a region.  For instance, to
set the range <SAMP>`A1.E3'</SAMP> to <SAMP>`courier'</SAMP> at 12pt, type
<TABLE><tr><td>&nbsp;</td><td><pre>        M-r o courier <KBD>RET</KBD> 1.0   <KBD>RET</KBD>
</pre></td></tr></table>(<CODE>set-region-font</CODE>)
<A NAME="IDX193"></A>
<P>

<DT><KBD>M-d o</KBD>
<DD>        Use this command to set the default font.  For instance, to
set the range <SAMP>`A1.E3'</SAMP> to <SAMP>`fixed'</SAMP> at 12pt, type
<TABLE><tr><td>&nbsp;</td><td><pre>        M-r o fixed <KBD>RET</KBD> 1.0  <KBD>RET</KBD>
</pre></td></tr></table>All cells whose font has not been specified have the default font, so
changing this will change the font in the entire spreadsheet.
(<CODE>set-default-font</CODE>)
<A NAME="IDX194"></A>
<P>

<DT><KBD>M-x set-default-point-size</KBD>
<DD>        Set the default point size.  To set the default point size to
10, type
<TABLE><tr><td>&nbsp;</td><td><pre>        M-x set-default-point-size <KBD>RET</KBD> 10  <KBD>RET</KBD>
</pre></td></tr></table>(<CODE>set-default-point-size</CODE>)
<A NAME="IDX195"></A>
<P>

<DT><KBD>M-x define-font-name</KBD>
<DD><P>

</DL>
<A NAME="IDX196"></A>
<A NAME="IDX197"></A>
<A NAME="IDX198"></A>
<P>

<HR SIZE="6">
<A NAME="SEC51"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC50"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC52"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC39"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 5. Multiple Windows </H1>
<!--docid::SEC51::-->
<P>

  Oleo can split a spreadsheet into two or more windows.  
 The windows showing the spreadsheet can
show different parts of it.
Only one spreadsheet can be displayed at a time.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC52">Windows</A></TD><TD ALIGN="left">Introduction to Oleo windows.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC53">Split Window</A></TD><TD ALIGN="left">New windows are made by splitting existing windows.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC54">Other Window</A></TD><TD ALIGN="left">Moving to another window or doing something to it.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC55">Change Window</A></TD><TD ALIGN="left">Deleting windows and changing their sizes.</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC52"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC53"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 5.1 Concepts of Oleo Windows </H2>
<!--docid::SEC52::-->
<P>

<A NAME="IDX199"></A>
  At any time, one of the windows is the <EM>selected window</EM>.
  The cell cursor is located in this window.  Each other window has a
location of point as well, but since the terminal has only one cell
cursor there is no way to show where those locations are.
</P><P>

  Commands to move the cell cursor affect the cell cursor for the
selected Oleo window only.  They do not change the value of the cell
cursor in any other Oleo window.
</P><P>

  When there are multiple windows,  they can have different
regions, because they can have different values of the cell cursor.
</P><P>

<HR SIZE="6">
<A NAME="SEC53"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC52"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC54"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 5.2 Splitting Windows </H2>
<!--docid::SEC53::-->
<P>

<DL COMPACT>
<DT><KBD>C-x 2</KBD>
<DD>Split the selected window into two windows, one above the other
(<CODE>split-window-vertically</CODE>).
<A NAME="IDX200"></A>
<DT><KBD>C-x 5</KBD>
<DD>Split the selected window into two windows positioned side by side
(<CODE>split-window-horizontally</CODE>).
<A NAME="IDX201"></A>
</DL>
<P>

<A NAME="IDX202"></A>
<A NAME="IDX203"></A>
  The command <KBD>C-x 2</KBD> (<CODE>split-window-vertically</CODE>) breaks the
<A NAME="IDX204"></A>
selected window into two windows, one above the other.  Both windows start
out displaying the cell cursor in the same position.  By default
the two windows each get half the height of the window that was split.
</P><P>

<A NAME="IDX205"></A>
<A NAME="IDX206"></A>
  <KBD>C-x 5</KBD> (<CODE>split-window-horizontally</CODE>) breaks the selected
<A NAME="IDX207"></A>
window into two side-by-side windows.  
</P><P>

<HR SIZE="6">
<A NAME="SEC54"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC53"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC55"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 5.3 Using Other Windows </H2>
<!--docid::SEC54::-->
<P>

<DL COMPACT>
<DT><KBD>C-x o</KBD>
<DD>Select another window (<CODE>other-window</CODE>).  That is <KBD>o</KBD>, not zero.
<A NAME="IDX208"></A>
<DT><KBD>M-C-v</KBD>
<DD>Scroll the next window (<CODE>scroll-other-window</CODE>).
<A NAME="IDX209"></A>
</DL>
<P>

<A NAME="IDX210"></A>
<A NAME="IDX211"></A>
  To select a different window, use <KBD>C-x o</KBD> (<CODE>other-window</CODE>).
<A NAME="IDX212"></A>
That is an <KBD>o</KBD>, for `other', not a zero.  When there are more than two
windows, this command moves through all the windows in a cyclic order,
generally top to bottom and left to right.  After the rightmost and
bottommost window, it goes back to the one at the upper left corner.  
When the minibuffer is active, the minibuffer is the last window in the
cycle; you can switch from the minibuffer window to one of the other
windows, and later switch back and finish supplying the minibuffer argument
that is requested.  
</P><P>

<A NAME="IDX213"></A>
<A NAME="IDX214"></A>
  The usual scrolling commands  apply to the selected
window only, but there is one command to scroll the next window.
<KBD>C-M-v</KBD> (<CODE>scroll-other-window</CODE>) scrolls the window that
<A NAME="IDX215"></A>
<KBD>C-x o</KBD> would select.  
</P><P>

<HR SIZE="6">
<A NAME="SEC55"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC54"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 5.4 Deleting and Rearranging Windows </H2>
<!--docid::SEC55::-->
<P>

<DL COMPACT>
<DT><KBD>C-x 0</KBD>
<DD>Get rid of the selected window (<CODE>delete-window</CODE>).  That is a zero.
<A NAME="IDX216"></A>
<DT><KBD>C-x 1</KBD>
<DD>Get rid of all windows except the selected one (<CODE>delete-other-windows</CODE>).
<A NAME="IDX217"></A>
</DL>
<P>

<A NAME="IDX218"></A>
<A NAME="IDX219"></A>
  To delete a window, type <KBD>C-x 0</KBD> (<CODE>delete-window</CODE>).  (That is
a zero.)  The space occupied by the deleted window is given to an
adjacent window.  Once a window is deleted, its attributes are forgotten.
</P><P>

<A NAME="IDX220"></A>
<A NAME="IDX221"></A>
  <KBD>C-x 1</KBD> (<CODE>delete-other-windows</CODE>) is more powerful than
<KBD>C-x 0</KBD>; it deletes all the windows except the selected one (and the
minibuffer); the selected window expands to use the whole frame.
</P><P>

<HR SIZE="6">
<A NAME="SEC56"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC55"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC57"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC51"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 6. Options </H1>
<!--docid::SEC56::-->
<P>

<A NAME="HelpOptions">
</P><P>

Oleo has various options.  They can be set as a default in the
<TT>`.oleorc'</TT> file, or using the command <CODE>M-x set-option</CODE>.
To see all the current options, type <CODE>C-h o</CODE>.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC57">Appearance</A></TD><TD ALIGN="left">Changing Oleo's appearance</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC58">Window Options</A></TD><TD ALIGN="left">Options for the active window</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC59">Other Options</A></TD><TD ALIGN="left">Other Options</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC57"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC58"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.1 Changing Oleo's appearance </H2>
<!--docid::SEC57::-->
<P>

<DL COMPACT>
<DT><CODE>a0</CODE>
<DD><A NAME="IDX222"></A>
In a0 mode, Oleo uses {letters}{digits} style cell-references,
like some popular spreadsheets.
<P>

<DT><CODE>noa0</CODE>
<DD><A NAME="IDX223"></A>
In noa0 mode, Oleo uses R{digits}C{digits} style references,
like some other popular spreadsheets.  (<CODE>Default</CODE>)
<P>

<DT><CODE>status</CODE>
<DD><A NAME="IDX224"></A>
This option controls which line on the screen is used for
displaying the status of the current cell.  The number may be
positive, (counting down from the top), negative (counting up
from the bottom, or zero (disabling the status line).
(<CODE>Default=2</CODE>)
<P>

<DT><CODE>input</CODE>
<DD><A NAME="IDX225"></A>
This option controls which line on the screen is used for
reading lines of text.  The number may be positive (counting
down from the top), or negative (counting up from the
bottom), but not zero.
(<CODE>Default=1</CODE>)
<P>

<DT><CODE>edges</CODE>
<DD><A NAME="IDX226"></A>
In edges mode Oleo displays row and column numbers at the top
and left edges of the window. (<CODE>Default</CODE>)
<P>

<DT><CODE>noedges</CODE>
<DD><A NAME="IDX227"></A>
Row and column numbers are not displayed.
<P>

<DT><CODE>standout</CODE>
<DD><A NAME="IDX228"></A>
In standout mode, the edges  are drawn in
standout mode (reverse video, usually). (<CODE>Default</CODE>)
<P>

<DT><CODE>nostandout</CODE>
<DD><A NAME="IDX229"></A>
        Edges are not drawn in standout mode.
<P>

<DT><CODE>list (ch)</CODE>
<DD><A NAME="IDX230"></A>
       		Use the character CH to separate the cell values.
<A NAME="DOCF18" HREF="oleo.html#FOOT18">(18)</A>
<P>

</DL>
<P>

<HR SIZE="6">
<A NAME="SEC58"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC57"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC59"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.2 Options for the active window </H2>
<!--docid::SEC58::-->
<P>

The following options affect the currently active window:
</P><P>

<DL COMPACT>

<DT><CODE>page</CODE>
<DD><A NAME="IDX231"></A>
In page mode, whenever a particular cell is
displayed in the window, it will always be in the same
location on the screen.  In page mode, the recenter command
acts just like the redraw-screen command.
<DT><CODE>nopage</CODE>
<DD><A NAME="IDX232"></A>
Turns off page mode.
<P>

<DT><CODE>pageh</CODE>
<DD><A NAME="IDX233"></A>
Turns on  page mode only in the horizontal direction.
<P>

<DT><CODE>nopageh</CODE>
<DD><A NAME="IDX234"></A>
Turns off  page mode only in the horizontal direction.
<P>

<DT><CODE>pagev</CODE>
<DD><A NAME="IDX235"></A>
Turns on  page mode only in the vertical direction.
<P>

<DT><CODE>nopageh</CODE>
<DD><A NAME="IDX236"></A>
 Turns off  page mode only in the vertical direction.
<P>

<DT><CODE>link</CODE>
<DD><A NAME="IDX237"></A>
This option 'links' the current window with the one
specified.  A window may only be linked to one other window
at a time.  When a window is linked to another one, whenever
the cell cursor in the first window is moved, the cursor in
the other window moves as well.  (unless the cursor in other
window is locked from moving in that direction.)
<P>

<DT><CODE>nolink</CODE>
<DD><A NAME="IDX238"></A>
<DT><CODE>unlink</CODE>
<DD><A NAME="IDX239"></A>
This removes the link (if any) on the current window.
<P>

<DT><CODE>lockh</CODE>
<DD><A NAME="IDX240"></A>
Prevent the cell cursor in the current window
from moving in the horizontal direction, but only
when the cell cursor is moved in a window that this one is
linked.
<P>

<DT><CODE>nolockh</CODE>
<DD><A NAME="IDX241"></A>
        Disable horizontal locking
<P>

<DT><CODE>lockv</CODE>
<DD><A NAME="IDX242"></A>
Prevent the cell cursor in the current window
from moving in the vertical direction, but only
when the cell cursor is moved in a window that this one is
linked.
<P>

<DT><CODE>nolockv</CODE>
<DD><A NAME="IDX243"></A>
        Disable vertical locking
<P>

</DL>
<P>

<HR SIZE="6">
<A NAME="SEC59"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC58"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.3 Other Options </H2>
<!--docid::SEC59::-->
<P>

<DL COMPACT>

<DT><CODE>auto</CODE>
<DD><A NAME="IDX244"></A>
In auto mode, cells whose values may have changed are
automatically recalculated.  (<CODE>Default</CODE>)
<P>

<DT><CODE>noauto</CODE>
<DD><A NAME="IDX245"></A>
In noauto mode, cells are only
recalculated when the recalculate command is used.
<P>

<DT><CODE>bkgrnd</CODE>
<DD><A NAME="IDX246"></A>
<DT><CODE>background</CODE>
<DD><A NAME="IDX247"></A>
In background mode, automatic recalculation is done while
the spreadsheet waits for you to type a key (and stops while
the key is being handled).  (<CODE>Default</CODE>)
<P>

<DT><CODE>nobkgrnd</CODE>
<DD><A NAME="IDX248"></A>
<DT><CODE>nobackground</CODE>
<DD><A NAME="IDX249"></A>
In nobackground mode, Oleo
performs all its recalculation before listening for
keystrokes. 
<P>

<DT><CODE>backup</CODE>
<DD><A NAME="IDX250"></A>
In backup mode, whenever the spreadsheet writes out a file,
if the file already exists, a backup copy is made (like
emacs). (<CODE>Default</CODE>)
<P>

<DT><CODE>nobackup</CODE>
<DD><A NAME="IDX251"></A>
        A backup copy is not made.
<P>

<DT><CODE>bkup_copy</CODE>
<DD><A NAME="IDX252"></A>
In bkup_copy mode, backup files are made by copying the original file,
instead of renaming it.
<P>

<DT><CODE>nobkup_copy</CODE>
<DD><A NAME="IDX253"></A>
In nobackup mode bkup_copy is ignored. (<CODE>Default</CODE>)
<P>

<DT><CODE>ticks</CODE>
<DD><A NAME="IDX254"></A>
This value controls how often should rnd(), cell(), my(),
curcell(), etc cells get updated.  This value is in
seconds. <A NAME="DOCF19" HREF="oleo.html#FOOT19">(19)</A> The initial value is 10, meaning once every
10 seconds.
<P>

<DT><CODE>print</CODE>
<DD><A NAME="IDX255"></A>
This is the width of the page for the print command.  The
initial value is the width of the screen.
<P>

<DT><CODE>file</CODE>
<DD><A NAME="IDX256"></A>
<A NAME="DOCF20" HREF="oleo.html#FOOT20">(20)</A>
If -DUSE_DLD was defined, format-name may be any .o file
that contains definitions for the appropriate functions, or
'panic', which is the only file format that Oleo will have
compiled into it.  If -DUSE_DLD was not defined, format-name
must be one of sylk, sc, panic, or list, and Oleo will have
to be re-compiled before any other formats may be used.
<P>

<DT><CODE>load (file-name)</CODE>
<DD><A NAME="IDX257"></A>
<A NAME="DOCF21" HREF="oleo.html#FOOT21">(21)</A>This option is only avaliable if
Oleo was compiled with
-DUSE_DLD.  This option loads in a .o file of spreadsheet
functions, keyboard commands, and/or keymaps.  Spreadsheet
functions and keyboard commands must be loaded in before they
can be used in expressions or bound to keys.
<P>

</DL>
<P>

<HR SIZE="6">
<A NAME="SEC60"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC59"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC56"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 7. Printing and Plotting </H1>
<!--docid::SEC60::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC61">Writing Files</A></TD><TD ALIGN="left">Writing  ASCII and Postscript Files</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC62">Graphing</A></TD><TD ALIGN="left">Graphing Using GNU Plotutils</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC61"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 7.1 Writing ASCII and Postscript Files </H2>
<!--docid::SEC61::-->
<P>

Spreadsheets, and regions of spreadsheets,  can be printed in 
ASCII, LaTeX, or postscript format.  For postscript files, the font and page
size can be specified.
</P><P>

<DL COMPACT>
<DT><KBD>M-C-p a</KBD>
<DD><A NAME="IDX258"></A>
Write a region to a file in ASCII format. 
If the mark is set, you are prompted for a file name.  
The region between mark and cell cursor will be printed in a tabular
ASCII format. If the mark is not set, then you are first prompted for
the region, and then for the file name.  (<CODE>print-region</CODE>)
For example, if the mark is not
set, and you want to print the region A1.C20 to the file
<TT>`/tmp/myfile'</TT>, then you type
<TABLE><tr><td>&nbsp;</td><td><pre>             <KBD>M-C-p a</KBD> A1.C20 <KBD>RET</KBD> /tmp/myfile <KBD>RET</KBD>
</pre></td></tr></table><P>

If the mark had been set so that the region between mark and the current
cell is A1.C20, then you only need type
<TABLE><tr><td>&nbsp;</td><td><pre>             <KBD>M-C-p a</KBD>  /tmp/myfile <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<DT><KBD>M-C-p l</KBD>
<DD><A NAME="IDX259"></A>
Write a region to a file in LaTeX format.  By default the LaTeX code
prints the entries in ruled boxes in portrait mode.  There are
directions in the output file for the simple changes to print in
landscape mode, or to have all the entries unboxed.  If your region
contains a percent sign, then you must escape it by hand in the LaTeX
file to make LaTeX run correctly.
<P>

If the mark is set, you are prompted for a file name.  The region
between mark and cell cursor will be printed in LaTeX format.  If the
mark is not set, then you are first prompted for the region, and then
for the file name.  (<CODE>latex-region</CODE>) For example, if the mark is
not set, and you want to print the region A1.C20 to the file
<TT>`/tmp/myfile.tex'</TT>, then you type
<TABLE><tr><td>&nbsp;</td><td><pre>             <KBD>M-C-p l</KBD> A1.C20 <KBD>RET</KBD> /tmp/myfile.tex <KBD>RET</KBD>
</pre></td></tr></table></P><P>

If the mark had been set so that the region between mark and the current
cell is A1.C20, then you only need type
<TABLE><tr><td>&nbsp;</td><td><pre>             <KBD>M-C-p l</KBD>  /tmp/myfile.tex <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<DT><KBD>M-C-p p p</KBD>
<DD><A NAME="IDX260"></A>
Write a region to a file in PostScript format.
If the mark is set, you are prompted for a file name.  
If the mark is not set, then you are first prompted for
the region, and then for the file name.  (<CODE>psprint-region</CODE>)
For example, if the mark is not
set, and you want to write the region A1.C20 in PostScript to the file
<TT>`/tmp/myfile'</TT>, then you type
<TABLE><tr><td>&nbsp;</td><td><pre>             <KBD>M-C-p p p</KBD> A1.C20 <KBD>RET</KBD> /tmp/myfile <KBD>RET</KBD>
</pre></td></tr></table><P>

If the mark had been set so that the region between mark and the current
cell is A1.C20, then you only need type
<TABLE><tr><td>&nbsp;</td><td><pre>             <KBD>M-C-p p p</KBD>  /tmp/myfile <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<DT><KBD>M-C-p p f</KBD>
<DD><A NAME="IDX261"></A>
        This command sets the default font used in printing a region in
PostScript.  (<CODE>set-default-ps-font</CODE>) see section <A HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A> for
information about the possible fonts. 
To set the font to 24 point courier, type
<TABLE><tr><td>&nbsp;</td><td><pre>           M-C-p p f courier 2.0 <KBD>RET</KBD><A NAME="DOCF22" HREF="oleo.html#FOOT22">(22)</A>
</pre></td></tr></table><P>

<DT><KBD>M-C-p p s</KBD>
<DD><A NAME="IDX262"></A>
        Set the page size for the PostScript output
(<CODE>set-page-size</CODE>). You are prompted for a pagesize.  There are
several possible ways of describing a page size:
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>        8.5x11          -- a page size in inches.
        22x28c          -- a page size in centimeters.
        612x792p        -- a page size in points.
        letter          -- 8.5 x 11 in. (the default)
</pre></td></tr></table></P><P>

To set the correct page size for A4 paper, type
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>         M-C-p p s A4 <KBD>RET</KBD>
</pre></td></tr></table></P><P>

The following table gives the possible paper sizes.  The 
widths and heights are given in "points", of which there are 
72 in an inch.  
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

   Name            Width   Height    Comments
   ------------------------------------------------
   letter          612     792       8.5 x 11   in.   
   landscape       792     612       11  x 8.5  in.   
   tabloid         792     1224      11  x 17   in.    
   ledger          1224    792       17  x 11   in.    
   legal           612     1008      8.5 x 14   in.   
   statement       396     612       5.5 x 8.5  in.   
   executive       540     720       7.5 x 10   in.   
   a3              842     1190    
   a4              595     842     
   latex-a4        523     770       A4 with 1in. margins
   a5              420     595     
   b4              729     1032    
   b5              516     729           
   folio           612     936       8.5 x 13  in.   
   quarto          610     780     
</pre></td></tr></table></P><P>

</DL>
<P>

<HR SIZE="6">
<A NAME="SEC62"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC63"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 7.2 Graphing Using GNU Plotutils </H2>
<!--docid::SEC62::-->
<P>

Note: this chapter is only partially updated, however functionality
has changed drastically !!
</P><P>

Plotting in Oleo is done using GNU Plotutils. (Versions prior to
Oleo 1.99.12 used gnuplot.) Currently these types of graphs are
supported :
<UL>
<LI>XY
<LI>bar
<LI>pie
</UL>
<P>

There are two modes in which Oleo can produce plots on the fly :
<UL>
<LI>in a Motif window
<LI>in Xterm using its Tektronix emulation
</UL>
<P>

The former is the default behaviour of you use the Motif interface
of Oleo, the latter can be initialised by this sequence :
<TABLE><tr><td>&nbsp;</td><td><pre>        <KBD>M-g</KBD>  o  t  f - <KBD>RET</KBD>
</pre></td></tr></table></P><P>

This sequence sets output device to Tektronix, and output file to
- which means to standard output. Sending Tektronix formatted output
to an xterm will pop up xterm's Tektronix emulation window which
shows the plot.
</P><P>

The file examples/xy.oleo can be used to show a simple XY plot in
this way.
</P><P>

Oleo can print up to 10 different data sets at once.  The
data sets are numbered 0,1,<small>...</small>,9.  
</P><P>

When the plot command (<KBD>p</KBD>) is chosen, all the currently defined
data sets will be plotted.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC63">Clearing Plots</A></TD><TD ALIGN="left">Clearing the plots</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC64">Data sets</A></TD><TD ALIGN="left">Choosing a data set</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC65">The axes</A></TD><TD ALIGN="left">Changing the axes style</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC66">Viewing Choices</A></TD><TD ALIGN="left">Viewing your choices</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC67">Output Type</A></TD><TD ALIGN="left">Choosing the output type</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC68">Style Options</A></TD><TD ALIGN="left">Picking a  plot style</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC69">Name Options</A></TD><TD ALIGN="left">Naming a data set</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC63"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC64"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 7.2.1 Clearing the Plots </H3>
<!--docid::SEC63::-->
<P>

The plot ranges and styles are remembered; if you decide to plot using
<KBD>M-g</KBD>, you probably want to clear the ranges and styles using the
<KBD>C</KBD> and <KBD>R</KBD> keys in the main graph menu:
</P><P>

<DL COMPACT>
<DT><KBD>C</KBD>
<DD>Clear all the datasets (0-9) of their ranges.
<DT><KBD>R</KBD>
<DD>Remove all the style information from all datasets
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC64"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC63"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC65"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 7.2.2 Choosing a data set </H3>
<!--docid::SEC64::-->
<P>

The key <KBD>d</KBD> is used to choose a range for a data set.
If the mark is active, then the region between the mark and the current
cell is chosen as the data set.  Otherwise, you are prompted for the
range.   
</P><P>

When you define a data set (using
the <KBD>d</KBD> key in the graph menu), you select a number to refer to the
data set.  If we are already in the graph menu (having typed <KBD>M-g</KBD>),
then the following assigns the region G5.L6 to data set 4:
<TABLE><tr><td>&nbsp;</td><td><pre>                      d  4  <KBD>RET</KBD> G5.L6  <KBD>RET</KBD>
</pre></td></tr></table></P><P>

If the mark is set, then it is not necessary (nor possible) to enter the
range.  Thus, 
if the mark is set to G5 and the cursor is in L6, then these commands
set the fourth data set to G5.L6:
<TABLE><tr><td>&nbsp;</td><td><pre>                      d  4  <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>                  | Col B | Col C | Col D | Col E | Col F |
            ------|-------|-------|-------|-------|-------|
            Row 2 |   11  |   33  |  55   |   77  |   99  |
            ------|-------|-------|-------|-------|-------|
            Row 3 |   22  |   44  |  66   |   88  |    0  |
            ------|-------|-------| ------|-------|-------|
</pre></td></tr></table></P><P>

and that we are in the graph menu.
<UL>
<LI>
If we type <KBD>d 4 RET B2.F3 RET</KBD>, then when we print there will be
three line segments:
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>     (11,33) -- (22,44) -- (55,77) -- (66,88)
</pre></td></tr></table></P><P>

<LI>
If we type <KBD>d 4 RET B2.F3 RET</KBD>, then when we print there will be
four line segments:
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>     (11,22) -- (33,44) -- (55,66) -- (77,88) -- (99,0)
</pre></td></tr></table></P><P>

<LI>
If we type <KBD>d 4 RET B2.F3 RET</KBD>, then when we print there will be
nine line segments.  Notice that all the items in the first row are
plotted, then all the ones in the second row, and so on.
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>(0,11)--(1,33)--(2,55)--(3,77)--(4,99)--(5,22)--(6,44)--(7,66)--(8,88)--(9,0)
</pre></td></tr></table></P><P>

</UL>

Finally, you are asked about labels.  <A NAME="DOCF23" HREF="oleo.html#FOOT23">(23)</A>

<HR SIZE="6">
<A NAME="SEC65"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC64"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC66"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 7.2.3 Changing the axes style </H3>
<!--docid::SEC65::-->
<P>

The commands <KBD>x</KBD> and <KBD>y</KBD> allow you to control the axes style.
</P><P>

<DL COMPACT>
<DT><KBD>[</KBD>
<DD>You are prompted for the lower limit of the range.
<DT><KBD>]</KBD>
<DD>You are prompted for the upper limit of the range.
For instance, to set the range of the x-axis to [-3,5], type the
following in the graph menu:
<TABLE><tr><td>&nbsp;</td><td><pre>              x [ -3 <KBD>RET</KBD>
              x ]  5 <KBD>RET</KBD>
</pre></td></tr></table><P>

<DT><KBD>s</KBD>
<DD>Use a symbolic expression for the range <A NAME="DOCF24" HREF="oleo.html#FOOT24">(24)</A>
<DT><KBD>l</KBD>
<DD>Use values in the spreadsheet for the ticks on the axis.
<A NAME="DOCF25" HREF="oleo.html#FOOT25">(25)</A>
<DT><KBD>L</KBD>
<DD>Restore the default tick marks for the axis.  This undoes the effect of
the <KBD>l</KBD> command.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC66"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC65"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC67"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 7.2.4 Viewing your choices </H3>
<!--docid::SEC66::-->
<P>

Typing <KBD>v</KBD> in the main graph menu gives a help screen with all of
your choices.  A typical  help screen is
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>    Graph type is XY plot.
    
    Parameter               Value
    
    output type             Tektronix
    output file             -
    x-axis title            "Tijd"
    y-axis title            "Appelen"
    logarithmic axes        -neither-
    x-axis range            [def..def]
    y-axis range            [def..def]
    
    Data Set 0
      data for this set: A1:A6
      style for this set: lines
    
    
    Data Set 1
      data for this set: C4:C9
      style for this set: lines
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC67"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC66"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC68"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 7.2.5 The Output Type </H3>
<!--docid::SEC67::-->
<P>

The <KBD>o</KBD> key in the main graph menu selects the type of output.
A graph can be drawn in several ways - see the table below.
</P><P>

Note however that, depending on compilation parameters, not all
of the options documented below may be available (e.g. no X or
x commands).
</P><P>

<DL COMPACT>
<DT><KBD>p</KBD>
<DD>Write a file of PostScript commands that draw that graph.
<DT><KBD>X</KBD>
<DD>Draw the graph in an X window, in color.
<DT><KBD>t</KBD>
<DD>Write Tektronix graphics terminal commands.
<DT><KBD>r</KBD>
<DD>Write ReGIS commands (VT340 type terminals, most VT emulators don't support this)
<DT><KBD>P</KBD>
<DD>Write PCL printer commands.
<DT><KBD>h</KBD>
<DD>Write HP-GL plotter command language.
<DT><KBD>i</KBD>
<DD>Write Adobe Illustrator format.
<DT><KBD>m</KBD>
<DD>Write GNU Metaplot format.
<DT><KBD>f</KBD>
<DD>Write FIG output
<DT><KBD>n</KBD>
<DD>Write PNG (Portable Network Graphics, an unencumbered replacement for GIF)
<DT><KBD>g</KBD>
<DD>Write GIF format
<DT><KBD>x</KBD>
<DD>Draw the graph in an X window, in black and white.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC68"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC67"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC69"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 7.2.6 Picking a plot style </H3>
<!--docid::SEC68::-->
The <KBD>s</KBD> option on the main graph menu selects the graph style.  There
are 5 possibilities:<A NAME="DOCF26" HREF="oleo.html#FOOT26">(26)</A>
<P>

<DL COMPACT>
<DT><KBD>lines</KBD>
<DD>The <EM>lines</EM> style connects adjacent points with lines. (Default)
<DT><KBD>points</KBD>
<DD> The <EM>points</EM> style displays a small symbol at each point.
<DT><KBD>impulses</KBD>
<DD> The <EM>impulses</EM> style displays a vertical line from the x axis
to each point. 
<DT><KBD>dots</KBD>
<DD>The <EM>dots</EM> style  plots a tiny dot at each point; this is useful for
 scatter plots with many points.
<DT><KBD>linespoints</KBD>
<DD> The <EM>linespoints</EM> style does both <EM>lines</EM> and <EM>points</EM>.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC69"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC68"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC61"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC62"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 7.2.7 Naming a data set </H3>
<!--docid::SEC69::-->
The <KBD>d</KBD> option on the main graph menu allows a name to be attached
to a data set.  The default name of the i-th data set is "Data set i".
When the graphs are plotted, each graph is printed with a different line
type, and the names of the data set and their line type are printed in
the upper right corner. The name must be in quotes. <A NAME="DOCF27" HREF="oleo.html#FOOT27">(27)</A>
To add the name "my Fermat plot" 
to  data set 3, type
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>      n  3  <KBD>RET</KBD>   "my Fermat plot"  <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC70"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC69"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC71"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC60"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 8. Macros </H1>
<!--docid::SEC70::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC71">8.1 Keyboard Macros</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC72">8.2 Basic Use</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC73">8.3 Naming and Saving Keyboard Macros</A></TD><TD ALIGN="left"></TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC71"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC72"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.1 Keyboard Macros </H2>
<!--docid::SEC71::-->
<P>

<A NAME="IDX263"></A>
<A NAME="IDX264"></A>
  A <EM>keyboard macro</EM> is a command defined by the user to abbreviate a
sequence of keys.  For example, if you discover that you are about to type
<KBD>C-b</KBD> forty times, you can speed your work by defining a keyboard
macro to do <KBD>C-b</KBD> and calling it with a repeat count of forty.
<A NAME="DOCF28" HREF="oleo.html#FOOT28">(28)</A>
</P><P>

<DL COMPACT>
<DT><KBD>C-x (</KBD>
<DD>Start defining a keyboard macro (<CODE>start-kbd-macro</CODE>).
<DT><KBD>C-x )</KBD>
<DD>End the definition of a keyboard macro (<CODE>end-kbd-macro</CODE>).
<DT><KBD>C-x e</KBD>
<DD>Execute the most recent keyboard macro (<CODE>call-last-kbd-macro</CODE>).
<DT><KBD>C-x =</KBD>
<DD>Store the most recent keyboard macro (<CODE>store-last-kbd-macro</CODE>).
</DL>
<P>

  Keyboard macros differ from ordinary Oleo commands in that they are
simply records of keystrokes.  This makes it
easier for the novice to write them, and makes them more convenient as
temporary hacks.  However, the Oleo command language is not powerful
enough as a programming language to be useful for writing anything
intelligent or general.  For such things, functions and programs must be used.
</P><P>

  You define a keyboard macro while executing the commands which are the
definition.  Put differently, as you define a keyboard macro, the
definition is being executed for the first time.  This way, you can see
what the effects of your commands are, so that you don't have to figure
them out in your head.  When you are finished, the keyboard macro is
defined and also has been, in effect, executed once.  You can then do the
whole thing over again by invoking the macro.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC72">Basic Kbd Macro</A></TD><TD ALIGN="left">Defining and running keyboard macros.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC73">Save Kbd Macro</A></TD><TD ALIGN="left">Saving  keyboard macros</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC72"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC71"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC73"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.2 Basic Use </H2>
<!--docid::SEC72::-->
<P>

<A NAME="IDX265"></A>
<A NAME="IDX266"></A>
<A NAME="IDX267"></A>
<A NAME="IDX268"></A>
<A NAME="IDX269"></A>
<A NAME="IDX270"></A>
  To start defining a keyboard macro, type the <KBD>C-x (</KBD> command
(<CODE>start-kbd-macro</CODE>).  From then on, your keys continue to be
executed, but also become part of the definition of the macro.  <SAMP>`Def'</SAMP>
appears in the status line to remind you of what is going on.
<A NAME="DOCF29" HREF="oleo.html#FOOT29">(29)</A>
  When you are
finished, the <KBD>C-x )</KBD> command (<CODE>end-kbd-macro</CODE>) terminates the
definition (without becoming part of it!).  For example
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>C-x ( M-f foo C-x )
</pre></td></tr></table></P><P>

defines a macro to move forward a word (while editing the input line)
 and then insert <SAMP>`foo'</SAMP>.
</P><P>

  The macro thus defined can be invoked again with the <KBD>C-x e</KBD> command
(<CODE>call-last-kbd-macro</CODE>), which may be given a repeat count as a
numeric argument to execute the macro many times.  
</P><P>

  If you wish to repeat an operation at regularly spaced places in the
spreadsheet, define a macro and include as part of the macro the commands to move
to the next place you want to use it.  
</P><P>

  You can use function keys in a keyboard macro, just like keyboard
keys.  You can even use mouse events, but be careful about that: when
the macro replays the mouse event, it uses the original mouse position
of that event, the position that the mouse had while you were defining
the macro.  The effect of this may be hard to predict.  (Using the
current mouse position would be even less predictable.)
<A NAME="DOCF30" HREF="oleo.html#FOOT30">(30)</A>
</P><P>

<HR SIZE="6">
<A NAME="SEC73"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC72"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.3 Naming and Saving Keyboard Macros </H2>
<!--docid::SEC73::-->
<P>

<A NAME="IDX271"></A>
<A NAME="IDX272"></A>
  If you wish to save a keyboard macro for longer than until you define the
next one, you must give it a cell to store it in 
 name using <KBD>M-x save-last-kbd-macro</KBD>.
This reads a cell as an argument using the minibuffer and stores the
macro in the cell.
<A NAME="DOCF31" HREF="oleo.html#FOOT31">(31)</A>
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>M-x store-last-kbd-macro <KBD>RET</KBD> <VAR>cellname</VAR> <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<HR SIZE="6">
<A NAME="SEC74"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC73"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC75"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC70"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC79"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 9. Programs </H1>
<!--docid::SEC74::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC75">One Line Programs</A></TD><TD ALIGN="left">Writing One Line Programs</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC76">Long One Liners</A></TD><TD ALIGN="left">Multiple Commands in One Line</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC77">Writing programs</A></TD><TD ALIGN="left">Writing Programs</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC78">Commands in Programs</A></TD><TD ALIGN="left">Commands available in programs</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC75"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC76"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC79"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 9.1 Writing One Line Programs </H2>
<!--docid::SEC75::-->
        Any <KBD>M-x</KBD> command can be written into a cell.  Typing 
<CODE>M-x cell-number</CODE> will execute the commands in the cell.
For example, assume the cell cursor is located on cell <CODE>A1</CODE>.
Enter the keystrokes (including the quotes and braces).
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>"{right-cell 4}"
</pre></td></tr></table></P><P>

If you now type <CODE>M-x A1</CODE> the cell cursor will be positioned in
<CODE>E1</CODE>. Typing <CODE>M-x A1</CODE> again, the cell cursor is positioned at
<CODE>I1</CODE>.  Some examples:
</P><P>

<DL COMPACT>
<DT><CODE>"{set-option status -1}"</CODE>
<DD>        Set the status line to the bottom row of the screen
<P>

<DT><CODE>"{print-region A1.F35 /tmp/out}"</CODE>
<DD>        Write the values of the cells in the region <SAMP>`A1.F35'</SAMP> to the
file <CODE>/tmp/out</CODE>.  The contents of the cells are truncated to fit in
their column's width.  The result is a rectangular array.  Notice that
there are no quotes around the file name.
<P>

</DL>
<P>

<HR SIZE="6">
<A NAME="SEC76"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC75"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC77"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC79"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 9.2 Multiple Commands in One Line </H2>
<!--docid::SEC76::-->
<P>

To execute several commands at once, concatenate them in a cell.
If <SAMP>`A1'</SAMP> contains
<TABLE><tr><td>&nbsp;</td><td><pre>"{right-cell 1}{up-cell 1}"
</pre></td></tr></table></P><P>

then typing <CODE>M-x A1</CODE> moves the cell cursor one right and one up.
</P><P>

<HR SIZE="6">
<A NAME="SEC77"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC76"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC78"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC79"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 9.3 Writing Programs </H2>
<!--docid::SEC77::-->
<P>

If commands are entered into a region named by a variable <VAR>var</VAR>,
then we can use <CODE>M-x var</CODE> to execute the code.
</P><P>

Suppose that the contents of <CODE>A1.A3</CODE> are given below , and that
region <CODE>A1.A3</CODE> is named <CODE>test1</CODE>.  Typing
<CODE>M-x test1</CODE> has the same effect as <CODE>{up-cell 1}</CODE>.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>        "{right-cell 1}"
        "{up-cell    1}"
        "{left-cell  1}"
</pre></td></tr></table></P><P>

<A NAME="DOCF32" HREF="oleo.html#FOOT32">(32)</A>
</P><P>

If <TT>`filename'</TT> contains a list of <CODE>Oleo</CODE> commands (like the
<TT>`.oleorc'</TT> file), the commands in this file can be executed:
</P><P>

<DL COMPACT>
<DT><KBD>M-x	read-commands</KBD>
<DD>This command opens the file you specify, reads in each
line, and executes them as if you'd typed them in to
execute-command.  If any command needs more arguments than are
included on the line, it will prompt you (interactively) for
the missing information.
<P>

The syntax for a command is a command name followed by a whitespace 
separated list arguments.  For example: 
<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

	bind-key main next-row <KBD>^n</KBD>,
</pre></td></tr></table></P><P>

Blank lines and lines that begin with `#' are ignored.
Lines may be continued by preceeding the final newline with an
odd number of `\\' characters.  One backslash and the newline will,
be discarded.
</P><P>

The commands in the next file perform some arithmetic operations on an
already loaded spreadsheet.  Note that the division is protected against
division by zero.
<TABLE><tr><td>&nbsp;</td><td><pre>goto-cell r3c84
edit-cell  ((rc82-rc3)/if(rc4=0,0.5,rc4) )^2 + \
           ((rc82-rc5)/if(rc6=0,0.5,rc6) )^2 
goto-cell r3c85
edit-cell rc[-1]/36.0
</pre></td></tr></table></P><P>

</DL>
<P>

<HR SIZE="6">
<A NAME="SEC78"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC77"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC79"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC79"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 9.4 Commands available in programs </H2>
<!--docid::SEC78::-->
<P>

The commands available in programs are listed in the command index
(see section <A HREF="oleo.html#SEC111">17. Command Index</A>).
For more information, look at the online help for the individual entries.
</P><P>

<HR SIZE="6">
<A NAME="SEC79"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC78"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC74"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 10. Keymaps and defining keys </H1>
<!--docid::SEC79::-->
<P>

What a key does when it is pressed depends on the context.  The listing
of actions associated with a key in a given context is called a
'keymap'.  Keymaps may have a 'default map'.  If a key is pressed which
does not have an assigned meaning in that map, the map's default map is
checked, and that map's default map, until a command is found or there
are no more default maps to scan.
</P><P>

The different keymaps, and their usage are as follows:
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>  universal         The root of all keymaps.
  main              The default keymap.
  meta              Default <KBD>ESC</KBD> commands.
  ansi              ANSI arrow keys.
  trolx             Default <KBD>C-x</KBD> commands.
  generic-*         More generic versions of the above, work everywhere.
  mouse             Bindings for mouse buttons.
  prefix            Number keys, and -, for argument prefix.
  help              Various levels of help commands.
</pre></td></tr></table></P><P>

The diagram below shows the relationship between the various keymaps.
The keymap to the left of a given keymap is its default.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>                  | generic-main ----| main
                  |                  | read-string ---| read-&#60;item&#62;*
		  |
                  | generic-meta ----| meta
                  |                  | meta-read-string --- meta-read-formula
		  |
                  | generic-ansi ----| ansi
                  |                  | edit-ansi
		  |
                  | generic-trolx ---| trolx
                  |                  | trolx-read-string
  universal ------| mouse
                  | generic-menu
                  | prefix
                  | meta-edit-ansi
                  | read-keyseq
                  | set-auto-motion
                  | read-most-chars ---| read-char
                  |                    | read-menu
                  | press-any
                  | view-info
                  | set-*-attr  (cell, region, default)
                  | generic-help ---| unprompted-help
                                    | help
                                    | verbose-help
</pre></td></tr></table></P><P>

<DL COMPACT>
<DT><CODE>M-x bind-key</CODE>
<DD>This asks for the name of a keymap followed by a
command name and a key to bind it to.  If the 'command' you
give is a cell or region in the spreadsheet, it is taken as a
macro, and bound to the key you specify.  For example, to make <KBD>C-1</KBD>
move up one cell in the main keymap, type
<A NAME="IDX273"></A>
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>        <KBD>M-x</KBD> bind-key <KBD>RET</KBD> main <KBD>RET</KBD> up-cell <KBD>C-1</KBD> <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<DT><CODE>M-x unbind-key</CODE>
<DD><A NAME="IDX274"></A>
This asks for the name of a keymap and the key in that map to unbind.
For example, to remove the default mapping bound to <KBD>M-k</KBD>, type
<TABLE><tr><td>&nbsp;</td><td><pre>	<KBD>M-k</KBD> unbind-key <KBD>RET</KBD> meta <KBD>RET</KBD> <KBD>k</KBD>
</pre></td></tr></table><P>

<DT><CODE>M-x describe-key</CODE>
<DD><A NAME="IDX275"></A>
Have the user press a key, and then describe
what function that key is bound to. (bound to <KBD>C-h c</KBD>)
<A NAME="IDX276"></A>
<P>

<DT><CODE>M-x write-keys</CODE>
<DD><A NAME="IDX277"></A>
Write a list o<CODE>f commands</CODE> to a file that, when
executed with read-commands, will return the keymaps to their
current state.  To write a list of commands to the file
<TT>`/tmp/name'</TT>, type
<P>

<TABLE><tr><td>&nbsp;</td><td><pre>        <KBD>M-x</KBD> write-keys <KBD>RET</KBD> /tmp/name <KBD>RET</KBD>
</pre></td></tr></table></P><P>

<DT><CODE>M-x read-commands</CODE>
<DD>This command opens the file you specify, reads in each
line, and executes them as if you'd typed them in to
execute-command.  If any command needs more arguments than are
included on the line, it will prompt you (interactively) for
the missing information.
<P>

</DL>
<P>

 
<HR SIZE="6">
<A NAME="SEC80"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC79"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC81"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC79"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 11. Functions </H1>
<!--docid::SEC80::-->
<P>

  Cell functions take a comma-separated list of arguments in
parentheses, and return a value based on those values.  In addition to
the standard value types, some arguments may be cell ranges.
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC81">Boolean functions</A></TD><TD ALIGN="left">and, or, not, etc.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC82">Math functions</A></TD><TD ALIGN="left">Elementary mathematical functions</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC86">String functions</A></TD><TD ALIGN="left">String manipulation functions.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC87">Structural functions</A></TD><TD ALIGN="left">Info about the structure of the spreadsheet.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC88">Search functions</A></TD><TD ALIGN="left">Search for cells by value, string, etc.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC89">Business functions</A></TD><TD ALIGN="left">Business stuff.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC90">Date functions</A></TD><TD ALIGN="left">Time and date manipulation.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC91">Gsl functions</A></TD><TD ALIGN="left">GSL (GNU Scientific Library) functions.</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC81"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC82"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 11.1 Boolean Functions </H2>
<!--docid::SEC81::-->
<P>

<A NAME="HelpBooleanFunctions">
</P><P>

  Boolean functions return either a <CODE>#TRUE</CODE> or <CODE>#FALSE</CODE> value.
Most arguments (those labelled <VAR>bool</VAR>) are also boolean.  If these
arguments have any other value instead, the function returns
<CODE>#NON_BOOL</CODE> as an error.
</P><P>

<DL COMPACT>
<DT><CODE>if(<VAR>bool</VAR>, <VAR>val1</VAR>, <VAR>val2</VAR>)</CODE>
<DD><A NAME="IDX278"></A>
  If <VAR>bool</VAR> is <CODE>#TRUE</CODE>, then <VAR>val1</VAR> is returned.  If
<VAR>bool</VAR> is <CODE>#FALSE</CODE>, <VAR>val2</VAR> is returned.
<DT><CODE>and(<VAR>bool1</VAR>, <VAR>bool2</VAR>)</CODE>
<DD><A NAME="IDX279"></A>
  Returns <CODE>#TRUE</CODE> if and only if both arguments are <CODE>#TRUE</CODE>,
otherwise returns <CODE>#FALSE</CODE>.
<DT><CODE>or(<VAR>bool1</VAR>, <VAR>bool2</VAR>)</CODE>
<DD><A NAME="IDX280"></A>
  Returns <CODE>#TRUE</CODE> if either or both arguments are <CODE>#TRUE</CODE>,
otherwise returns <CODE>#FALSE</CODE>.
<DT><CODE>not(<VAR>bool</VAR>)</CODE>
<DD>  Returns <CODE>#TRUE</CODE> if <VAR>bool</VAR> is <CODE>#FALSE</CODE>; <CODE>#FALSE</CODE> if
<CODE>#TRUE</CODE>.
<P>

<A NAME="IDX281"></A>
<A NAME="IDX282"></A>
<DT><CODE>iserr(<VAR>val</VAR>)</CODE>
<DD>   returns <CODE>#TRUE</CODE> if <VAR>val</VAR> is an error, <CODE>#FALSE</CODE>
otherwise.  
<DT><CODE>isnum(<VAR>val</VAR>)</CODE>
<DD> <CODE>#TRUE</CODE> if <VAR>val</VAR> is a number, or can be automatically
converted to a number.  Thus, <CODE>isnum("12")</CODE> is <CODE>#TRUE</CODE>, while
<CODE>isnum("foobar")</CODE> is <CODE>#FALSE</CODE>.
  
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC82"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC81"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC83"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC86"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 11.2 Elementary mathematical functions </H2>
<!--docid::SEC82::-->
<P>

<A NAME="HelpMathFunctions">
</P><P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC83">General math functions</A></TD><TD ALIGN="left">log, sqrt, etc.</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC84">Trigonometric functions</A></TD><TD ALIGN="left">Trigonometric functions</TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC85">Statistical functions</A></TD><TD ALIGN="left">Statistical functions</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC83"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC82"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC84"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC81"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC82"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC86"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 11.2.1 General Math Functions </H3>
<!--docid::SEC83::-->
<P>

For these these functions, the argument <VAR>x</VAR> can be a number (integer
or floating point), a reference to a cell containing an integer, or a
reference to a cell containing a quoted integer.  Thus, if cell
<A NAME="DOCF33" HREF="oleo.html#FOOT33">(33)</A>
<CODE>A2</CODE> contains <CODE>"-12.34"</CODE>,
then all of the following expressions compute the absolute
value of -12.34:  
<TABLE><tr><td>&nbsp;</td><td><pre>               @abs(-12.34)
               @abs(A2)
               @abs(@cell(2,1,"value"))
</pre></td></tr></table></P><P>

<DL COMPACT>
<DT><CODE>abs(<VAR>x</VAR>)</CODE>
<DD><A NAME="IDX283"></A>
  Returns the absolute value of <VAR>x</VAR>.
<P>

<DT><CODE>negate(<VAR>x</VAR>)</CODE>
<DD><A NAME="IDX284"></A>
  Returns  -<VAR>x</VAR>.
<P>

<DT><CODE>int(<VAR>x</VAR>)</CODE>
<DD><CODE>int()</CODE> converts <VAR>x</VAR> to an integer by truncating
the fractional part.  For instance,
<TABLE><tr><td>&nbsp;</td><td><pre>           int(2.3)     =>   2
           int(-2.3)    =>  -2
</pre></td></tr></table><P>

<DT><CODE>ceil(<VAR>x</VAR>)</CODE>
<DD>  <CODE>ceil()</CODE> replaces <VAR>x</VAR> by the least integer greater than or
equal to <VAR>x</VAR>.
<TABLE><tr><td>&nbsp;</td><td><pre>           ceil(2.3)     =>   3
           ceil(-2.3)    =>  -2
</pre></td></tr></table><P>

<DT><CODE>floor(<VAR>x</VAR>)</CODE>
<DD> <CODE>floor()</CODE> replaces <VAR>x</VAR> by the largest integer less than or
equal to <VAR>x</VAR>.
<TABLE><tr><td>&nbsp;</td><td><pre>           floor(2.3)     =>   2
           floor(-2.3)    =>  -3
</pre></td></tr></table><P>

<A NAME="IDX285"></A>
<A NAME="IDX286"></A>
<A NAME="IDX287"></A>
</P><P>

<DT><CODE>log(<VAR>x</VAR>)</CODE>
<DD>The natural log  of <VAR>x</VAR>.  If <VAR>x</VAR> is negative, the result is 
<SAMP>`#MINUS_INFINITY'</SAMP>, and the cell displays is <SAMP>`#OUT_OF_RANGE'</SAMP>.
<A NAME="IDX288"></A>
<P>

<DT><CODE>exp(<VAR>x</VAR>)</CODE>
<DD>The  exponential of <VAR>x</VAR>
<A NAME="IDX289"></A>
<P>

<DT><CODE>log10(<VAR>x</VAR>)</CODE>
<DD> The log base 10 of <VAR>x</VAR>.  If <VAR>x</VAR> is negative, the result is 
<SAMP>`#MINUS_INFINITY'</SAMP>, and the cell displays is <SAMP>`#OUT_OF_RANGE'</SAMP>.
<A NAME="IDX290"></A>
<P>

<DT><CODE>sqrt(<VAR>x</VAR>)</CODE>
<DD>  The square root of <VAR>x</VAR>.  If <VAR>x</VAR> is negative, the error message
is <SAMP>`#OUT_OF_RANGE'</SAMP>.
<A NAME="IDX291"></A>
<P>

<DT><CODE>rnd(<VAR>x</VAR>)</CODE>
<DD><A NAME="IDX292"></A>
  Generates a random integer from 0 to <VAR>x</VAR>-1.  This is updated
regularly. This can get annoying. To change the time that it is updated
from 1 second to 10 seconds, type
<TABLE><tr><td>&nbsp;</td><td><pre>        <KBD>M-x</KBD> set-option  <KBD>RET</KBD> ticks 10  <KBD>RET</KBD>
</pre></td></tr></table><P>

<DT><CODE>fixed(<VAR>x</VAR>, <VAR>places</VAR>)</CODE>
<DD>  Rounds <VAR>x</VAR> to <VAR>places</VAR> decimal places.
<A NAME="IDX293"></A>
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC84"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC83"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC85"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC81"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC82"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC86"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 11.2.2 Trigonometric Functions </H3>
<!--docid::SEC84::-->
<P>

<A NAME="HelpTrigonometricFunctions">
</P><P>

<DL COMPACT>
<DT><CODE>pi()</CODE>
<DD>  Constant; 15 decimals of 
pi,
3.141592653589793.
<DT><CODE>sin(<VAR>ang</VAR>)</CODE>
<DD>  The sine of angle <VAR>ang</VAR> (in radians).
<A NAME="IDX294"></A>
<P>

<DT><CODE>cos(<VAR>ang</VAR>)</CODE>
<DD>  The  cosine of angle <VAR>ang</VAR> (in radians).
<A NAME="IDX295"></A>
<P>

<DT><CODE>tan(<VAR>ang</VAR>)</CODE>
<DD>  The  tangent of angle <VAR>ang</VAR> (in radians).
<A NAME="IDX296"></A>
<P>

<DT><CODE>asin(<VAR>val</VAR>)</CODE>
<DD><A NAME="IDX297"></A>
  The arc sine (in radians) of <VAR>val</VAR>.
<P>

<DT><CODE>acos(<VAR>val</VAR>)</CODE>
<DD><A NAME="IDX298"></A>
  The arc  cosine (in radians) of <VAR>val</VAR>.
<P>

<DT><CODE>atan(<VAR>val</VAR>)</CODE>
<DD><A NAME="IDX299"></A>
  The arc  tangent (in radians) of <VAR>val</VAR>.
<P>

<DT><CODE>dtr(<VAR>deg</VAR>)</CODE>
<DD><A NAME="IDX300"></A>
  <CODE>dtr</CODE> converts degrees to radians.
<P>

<DT><CODE>rtd(<VAR>rad</VAR>)</CODE>
<DD><A NAME="IDX301"></A>
  <CODE>rtd</CODE> converts radians  to degrees.
<P>

<DT><CODE>atan2(<VAR>y</VAR>, <VAR>x</VAR>)</CODE>
<DD>  Expanded arc tangent; returns the arc tangent (in radians) of
<VAR>y</VAR> / <VAR>x</VAR>.  The range of <CODE>atan2</CODE> is
(-pi..pi).
The quadrant of the angle returned is determined by the quadrant of the
point (<VAR>x</VAR>, <VAR>y</VAR>).
 
<DT><CODE>hypot(<VAR>x</VAR>, <VAR>y</VAR>)</CODE>
<DD>  Returns the length of the hypotenuse of a triangle with sides <VAR>x</VAR>
and <VAR>y</VAR>; i.e., <CODE>sqrt(<VAR>x</VAR>*<VAR>x</VAR> + <VAR>y</VAR>*<VAR>y</VAR>)</CODE>.
(see section <A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A>)
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC85"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC84"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC86"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC81"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC82"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC86"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 11.2.3 Statistical Functions </H3>
<!--docid::SEC85::-->
<P>

<A NAME="HelpStatisticalFunctions">
</P><P>

  These functions take a variable number of arguments, labeled
<VAR>vr1</VAR>, <VAR>vr2</VAR>, etc.  Each of these values can be a
numeric type or a range.  If the value is a range, the values of all
numeric cells in that range are used (strings, empty cells, etc. are
ignored).  Values can also be strings that are easily convertible to
numbers; i.e., <CODE>"123"</CODE>.
</P><P>

  If none of the arguments include valid numbers, then the value of the
function is <CODE>#NO_VALUES</CODE>.  To ensure that the expression doesn't
return an error in such cases, you can provide a default value as an
extra argument (e.g., <CODE>@sum(0,r1:10c1:10)</CODE>).
</P><P>

 The spreadsheet below is used for examples of the statistical
functions.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

             | Col B | Col C | Col D |
       ------|-------|-------|-------|
       Row 2 |   2   |   3   |   5   |
       ------|-------|-------|-------|
       Row 3 |   8   |   4   |   6   |
       ------|-------|-------|-------|
       Row 4 |   9   |   1   |   3   |
       ------|-------|-------|-------|
       Row 5 |   4   |   7   |   0   |
       ------|-------|-------|-------|
       
</pre></td></tr></table></P><P>

<DL COMPACT>
<DT><CODE>sum(<VAR>vr1</VAR>, ...)</CODE>
<DD><A NAME="IDX302"></A>
  The sum  of the given values.  Each value can be a numeric
value or a range.
<DL COMPACT>
<DT><KBD>18</KBD>
<DD>        @sum(B2.B5)
<DT><KBD>20</KBD>
<DD>        @sum(B2.B5,2)
<DT><KBD>25</KBD>
<DD>        @sum(B2.B5,C4.C5)
</DL>
<P>

<DT><CODE>prod(<VAR>vr1</VAR>, ...)</CODE>
<DD><A NAME="IDX303"></A>
  The product  of the given values.  Each value can be a numeric
value or a range.
<DL COMPACT>
<DT><KBD>512</KBD>
<DD>        @prod(B2.B5)
<DT><KBD>1024</KBD>
<DD>        @prod(B2.B5,2)
<DT><KBD>0</KBD>
<DD>        @prod(B2.B5,C4.C5)
</DL>
<P>

<DT><CODE>count(<VAR>vr1</VAR>, ...)</CODE>
<DD><A NAME="IDX304"></A>
   The number of numeric values found among the arguments. In the
example, assume that the first row and column are not numbers.
<DL COMPACT>
<DT><KBD>4</KBD>
<DD>        @count(B2.B5)
<DT><KBD>4</KBD>
<DD>        @count(B2.B5,A1.D1)
<DT><KBD>6</KBD>
<DD>        @count(B2.B5,C4.C5)
</DL>
<P>

<DT><CODE>max(<VAR>vr1</VAR>, ...)</CODE>
<DD><A NAME="IDX305"></A>
   The maximum  value of all the arguments.  Non-numeric values are ignored.
<DL COMPACT>
<DT><KBD>8</KBD>
<DD>        @max(B2.B5)
<DT><KBD>8</KBD>
<DD>        @max(B2.B5,A1.D1)
<DT><KBD>8</KBD>
<DD>        @max(B2.B5,C4.C5)
</DL>
<P>

<DT><CODE>min(<VAR>vr1</VAR>, ...)</CODE>
<DD><A NAME="IDX306"></A>
   The  minimum value of all the arguments.
<DL COMPACT>
<DT><KBD>2</KBD>
<DD>        @min(B2.B5)
<DT><KBD>2</KBD>
<DD>        @min(B2.B5,A1.D1)
<DT><KBD>1</KBD>
<DD>        @min(B2.B5,C4.C5)
</DL>
<P>

<DT><CODE>avg(<VAR>vr1</VAR>, ...)</CODE>
<DD><A NAME="IDX307"></A>
  The average of the given values.  The sum of the numerical values in
the arguments is divided by the number of numeric values, not by the
number of cells.
<DL COMPACT>
<DT><KBD>4.5</KBD>
<DD>        @avg(B2.B5)
<DT><KBD>4.5</KBD>
<DD>        @avg(B2.B5,A1.D1)
<DT><KBD>4.333</KBD>
<DD>        @avg(B2.B5,C4.C5)
</DL>
<P>

<DT><CODE>std(<VAR>vr1</VAR>, ...)</CODE>
<DD><A NAME="IDX308"></A>
  The <EM>sample</EM> standard deviation.  To get the population standard
deviation, use <CODE>@sqrt(@var(...))</CODE>.
<DL COMPACT>
<DT><KBD>2.51</KBD>
<DD>        @std(B2.B5)
<DT><KBD>2.51</KBD>
<DD>        @std(B2.B5,A1.D1)
<DT><KBD>2.73</KBD>
<DD>        @std(B2.B5,C4.C5)
</DL>
<P>

<DT><CODE>var(<VAR>vr1</VAR>, ...)</CODE>
<DD>  The population variance of the arguments.  To get the sample variance,
use <CODE>@std(...)^2</CODE>.
<A NAME="IDX309"></A>
<DL COMPACT>
<DT><KBD>4.75</KBD>
<DD>        @var(B2.B5)
<DT><KBD>4.75</KBD>
<DD>        @var(B2.B5,A1.D1)
<DT><KBD>6.22</KBD>
<DD>        @var(B2.B5,C4.C5)
</DL>
<P>

</DL>
<P>

<HR SIZE="6">
<A NAME="SEC86"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC85"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC87"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC82"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 11.3 String Functions </H2>
<!--docid::SEC86::-->
<P>

<A NAME="HelpStringFunctions">
</P><P>

  Strings indexes start with 1 for the first character.  Indices less
than 1 or greater than the length of the corresponding string will
generate an <CODE>#OUT_OF_RANGE</CODE> error return, unless otherwise noted.
</P><P>

  These functions are in the `string' package.  If Oleo is compiled with
<SAMP>`-DUSE_DLD'</SAMP>, the string package must be loaded before these
functions can be used.  If a spreadsheet that uses these functions is
loaded before the string package is loaded, things will fail
(silently!).  This is a bug.
</P><P>

<DL COMPACT>
<DT><CODE>len(<VAR>str</VAR>)</CODE>
<DD><A NAME="IDX310"></A>
  Returns the number of characters in <VAR>str</VAR>.
<DT><CODE>strupr(<VAR>str</VAR>)</CODE>
<DD><A NAME="IDX311"></A>
  Converts <VAR>str</VAR> to all upper  case.
<DT><CODE>strlwr(<VAR>str</VAR>)</CODE>
<DD><A NAME="IDX312"></A>
  Converts <VAR>str</VAR> to all  lower case.
<DT><CODE>strcap(<VAR>str</VAR>)</CODE>
<DD><A NAME="IDX313"></A>
  Capitalizes each word in <VAR>str</VAR>.
<DT><CODE>trim(<VAR>trim</VAR>)</CODE>
<DD><A NAME="IDX314"></A>
  String beautifier.  Trims extra spaces and non-ASCII characters from
<VAR>str</VAR>.
<DT><CODE>find(<VAR>str1</VAR>, <VAR>str2</VAR>, <VAR>pos</VAR>)</CODE>
<DD><A NAME="IDX315"></A>
  Returns the index at or beyond <VAR>pos</VAR> where <VAR>str2</VAR> appears in
<VAR>str1</VAR> <A NAME="DOCF34" HREF="oleo.html#FOOT34">(34)</A>.  If <VAR>str2</VAR> does not appear at or
beyond <VAR>pos</VAR>, 0 is returned.
<DT><CODE>substr(<VAR>pos1</VAR>, <VAR>pos2</VAR>, <VAR>str</VAR>)</CODE>
<DD><A NAME="IDX316"></A>
  Extracts the substring from index <VAR>pos1</VAR> through <VAR>pos2</VAR> of
<VAR>str</VAR>.  Positive indices, starting with 1, count from the start of
the string, and negative indices (from -1) count from the end of the
string.  <VAR>pos1</VAR> must occur at or before <VAR>pos2</VAR>.
<DT><CODE>mid(<VAR>str</VAR>, <VAR>pos</VAR>, <VAR>len</VAR>)</CODE>
<DD><A NAME="IDX317"></A>
  Extracts the substring of <VAR>len</VAR> characters starting at <VAR>pos</VAR> in
<VAR>str</VAR>.  The substring is truncated if it begins or extends beyond
the end of <VAR>str</VAR><A NAME="DOCF35" HREF="oleo.html#FOOT35">(35)</A>.
<DT><CODE>edit(<VAR>str</VAR>, <VAR>pos1</VAR>, <VAR>pos2</VAR>)</CODE>
<DD><A NAME="IDX318"></A>
  Deletes the substring from <VAR>pos1</VAR> through <VAR>pos2</VAR> of <VAR>str</VAR>.
Negative indices can be used as with <CODE>substr</CODE>.
<DT><CODE>repeat(<VAR>str</VAR>, <VAR>num</VAR>)</CODE>
<DD><A NAME="IDX319"></A>
  Returns a string of <VAR>num</VAR> concatenations of <VAR>str</VAR> with itself;
e.g., <CODE>repeat("foo", 2)</CODE> returns <CODE>"foofoo"</CODE>.
<DT><CODE>concat(<VAR>vr1</VAR>, ...)</CODE>
<DD><A NAME="IDX320"></A>
  Returns the concatenation of all its arguments.  An argument may be a
range, in which case the cell values in the range are concatenated.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC87"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC86"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC88"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 11.4 Structural Functions </H2>
<!--docid::SEC87::-->
<P>

<A NAME="HelpStructuralFunctions">
</P><P>

  These functions return information about a cell or range of cells.
Some of them are in the `cells' package; if Oleo is compiled with
<SAMP>`-DUSE_DLD'</SAMP>, the cells package must be loaded first.
</P><P>

<DL COMPACT>
<DT><CODE>row()</CODE>
<DD><DT><CODE>col()</CODE>
<DD><A NAME="IDX321"></A>
<A NAME="IDX322"></A>
  The row or column of the cell the expression is in.
<DT><CODE>rows(<VAR>rng</VAR>)</CODE>
<DD><DT><CODE>cols(<VAR>rng</VAR>)</CODE>
<DD><A NAME="IDX323"></A>
<A NAME="IDX324"></A>
  The number of rows or columns in <VAR>rng</VAR>.
<DT><CODE>my(<VAR>key</VAR>)</CODE>
<DD><A NAME="IDX325"></A>
  Returns information about the cell containing the expression according
to the key string <VAR>key</VAR>.  Valid values for <VAR>key</VAR> are:
<P>

<DL COMPACT>
<DT><CODE>"row"</CODE>
<DD>    The cell's row address (an integer).
<DT><CODE>"column"</CODE>
<DD>    The cell's column address.
<DT><CODE>"width"</CODE>
<DD>    Width of the cell.
<DT><CODE>"lock"</CODE>
<DD><DT><CODE>"protection"</CODE>
<DD>    <CODE>"locked"</CODE> or <CODE>"unlocked"</CODE>. 
<DT><CODE>"justify"</CODE>
<DD><DT><CODE>"alignment"</CODE>
<DD>    <CODE>"left"</CODE>, <CODE>"right"</CODE>, <CODE>"center"</CODE> or <CODE>"default"</CODE>.
<DT><CODE>"format"</CODE>
<DD><DT><CODE>"fmt"</CODE>
<DD>    <CODE>"default"</CODE>, <CODE>"user-1"</CODE>, etc.
<DT><CODE>"type"</CODE>
<DD>    The type of the value of the cell: <CODE>"error"</CODE>, <CODE>"boolean"</CODE>,
<CODE>"float"</CODE>, <CODE>"integer"</CODE>, <CODE>"null"</CODE>, <CODE>"unknown"</CODE>, etc.
<DT><CODE>"formula"</CODE>
<DD>    A string of the cell's current formula.
<DT><CODE>"value"</CODE>
<DD>    The cell's current value.
</DL>
<P>

Any other value generates <CODE>#BAD_INPUT</CODE>.
<DT><CODE>curcell(<VAR>key</VAR>)</CODE>
<DD><A NAME="IDX326"></A>
  Same as <CODE>my()</CODE>, but returns information about the cell where the
cell-cursor is.
<DT><CODE>cell(<VAR>row</VAR>, <VAR>col</VAR>, <VAR>key</VAR>)</CODE>
<DD><A NAME="IDX327"></A>
  Same as <CODE>my()</CODE>, but for the cell at (<VAR>row</VAR>, <VAR>col</VAR>).  Be
careful about the indices in <CODE>a0</CODE> mode.  The cell in row 2, column
1 is <CODE>A2</CODE>, not <CODE>B1</CODE>.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC88"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC87"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC89"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 11.5 Search Functions </H2>
<!--docid::SEC88::-->
<P>

<A NAME="HelpSearchFunctions">
</P><P>

  These functions search for a value or string in a range of cells, and
return the index of the first cell that matches.  Cells are numbered
from 1 in column-major order; e.g., in the range <CODE>r1:2c1:3</CODE> cell
<CODE>r1c1</CODE> is index 1, cell <CODE>r2c1</CODE> is 2, cell <CODE>r1c2</CODE> is 3,
etc.
</P><P>

<DL COMPACT>
<DT><CODE>member(<VAR>rng</VAR>, <VAR>val</VAR>)</CODE>
<DD><A NAME="IDX328"></A>
  Returns the index of the first cell in <VAR>rng</VAR> that contains value
<VAR>val</VAR>, or 0 if no cells contain it.  <VAR>val</VAR> may be an error
value. 
<DT><CODE>smember(<VAR>rng</VAR>, <VAR>str</VAR>)</CODE>
<DD><A NAME="IDX329"></A>
  Search for a substring.  Returns the index of the first cell in
<VAR>rng</VAR> that is a substring of <VAR>str</VAR>, or 0 if no cells are
contained in <VAR>str</VAR>.  If <VAR>str</VAR> is empty, it matches empty cells
as well <A NAME="DOCF36" HREF="oleo.html#FOOT36">(36)</A>.
<DT><CODE>members(<VAR>rng</VAR>, <VAR>str</VAR>)</CODE>
<DD><A NAME="IDX330"></A>
  Like <CODE>members()</CODE>, but vice-versa: matches the first cell with a
substring of <VAR>str</VAR> (i.e., <VAR>str</VAR> is contained in the cell).  If
<VAR>str</VAR> is empty, empty cells are still ignored (unlike
<CODE>members()</CODE>).
<DT><CODE>pmember(<VAR>rng</VAR>, <VAR>str</VAR>)</CODE>
<DD><DT><CODE>memberp(<VAR>rng</VAR>, <VAR>str</VAR>)</CODE>
<DD><A NAME="IDX331"></A>
<A NAME="IDX332"></A>
  Same as <CODE>smember()</CODE> and <CODE>members()</CODE>, respectively, but these
search for an <EM>initial</EM> string <VAR>str</VAR> of the cells in <VAR>rng</VAR>.
<DT><CODE>index(<VAR>rng</VAR>, <VAR>index</VAR>)</CODE>
<DD><DT><CODE>index(<VAR>rng</VAR>, <VAR>rowoffset</VAR>, <VAR>coloffset</VAR>)</CODE>
<DD><A NAME="IDX333"></A>
  The first form returns the contents of the cell at index <VAR>index</VAR>
in <VAR>rng</VAR>.  The second form returns the cell in <VAR>rng</VAR> that is
<VAR>rowoffset</VAR> rows and <VAR>coloffset</VAR> columns from the upper left.
<DT><CODE>oneof(<VAR>choice</VAR>, <VAR>val1</VAR>, ...)</CODE>
<DD><A NAME="IDX334"></A>
  Case expression.  Returns <VAR>val1</VAR> if <VAR>choice</VAR> is 1, the next
value if 2, etc.  If <VAR>choice</VAR> is not a valid integer in the
appropriate range, <CODE>#OUT_OF_RANGE</CODE> is returned.  If no value
arguments are supplied, <CODE>#NO_VALUES</CODE> is returned.  Note that
arguments must be values; ranges are not allowed.
</DL>
<P>

  These functions are used to index into a table of entries:
</P><P>

<DL COMPACT>
<DT><CODE>hlookup(<VAR>rng</VAR>, <VAR>num</VAR>, <VAR>rowoffset</VAR>)</CODE>
<DD><A NAME="IDX335"></A>
  Scans the top row of <VAR>rng</VAR> looking for a number which is greater
than <VAR>num</VAR>, then returns the value in the cell that is
<VAR>rowoffset</VAR> rows down from the top of the range.
<DT><CODE>vlookup(<VAR>rng</VAR>, <VAR>num</VAR>, <VAR>coloffset</VAR>)</CODE>
<DD><A NAME="IDX336"></A>
  Like <CODE>vlookup()</CODE>, but vertically: scans the first column of
<VAR>rng</VAR> for a value greater than <VAR>num</VAR>, and returns the cell value
<VAR>coloffset</VAR> columns to the right.
<DT><CODE>vlookup_str(<VAR>rng</VAR>, <VAR>str</VAR>, <VAR>coloffset</VAR>)</CODE>
<DD><A NAME="IDX337"></A>
  Like <CODE>vlookup()</CODE>, but looks for string <VAR>str</VAR>.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC89"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC88"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC90"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 11.6 Business Functions </H2>
<!--docid::SEC89::-->
<P>

<A NAME="HelpBusinessFunctions">
</P><P>

Functions for various business-related calculations.  Rates are expressed as
exactly, i.e. don't expect <SAMP>`10'</SAMP> to mean <VAR>10%</VAR>, but rather use
<SAMP>`0.10'</SAMP>.  The units for <VAR>term</VAR> are payment periods.  Thus, if you want
to calculate any of the following using, for example, monthly componunding, you
will want <SAMP>`pmt(p, r/12, t*12)'</SAMP>, where <VAR>t</VAR> is in years.
</P><P>

<DL COMPACT>
<DT><CODE>pmt(<VAR>p</VAR>, <VAR>r</VAR>, <VAR>term</VAR>)</CODE>
<DD><A NAME="IDX338"></A>
  Payment per period for a loan of principal <VAR>p</VAR> at rate <VAR>r</VAR> for
  <VAR>term</VAR> payments, assuming a fully amortizing loan which compounds
  at the payment rate.
<DT><CODE>pv(<VAR>pmt</VAR>, <VAR>r</VAR>, <VAR>term</VAR>)</CODE>
<DD><A NAME="IDX339"></A>
  Present value of an investment that pays <VAR>pmt</VAR> at the end of each
  of <VAR>term</VAR> periods with a discount (interest) rate of <VAR>r</VAR>.
<DT><CODE>npv(<VAR>rng</VAR>, <VAR>r</VAR>)</CODE>
<DD><A NAME="IDX340"></A>
  Net present value of an investment which will pay uneven payments.  The term
  is calculated from the number of cells in range <VAR>rng</VAR>, with the first
  cell corresponding to <VAR>t=0</VAR> (i.e., assuming a beginning of year paymest
  stream).  Entries in the range can be positive or negative, corresponding to
  receipts or payments, respectively.
<DT><CODE>irr(<VAR>rng</VAR>, <VAR>guess</VAR>)</CODE>
<DD><A NAME="IDX341"></A>
  Internal rate of return.  Given a range of cells corresponding to
  uneven periodic payments, calculate the rate <VAR>r</VAR> such that
  <CODE>npv(rng,r)==0</CODE>.  This function can be multivalued when entries
  in the range change sign more than once, and hence returns <CODE>#BAD_INPUT</CODE>
  if it fails to converge.  Argument <VAR>guess</VAR> helps the function return
  more quickly, but is not critical.
<DT><CODE>fmrr(<VAR>rng</VAR>, <VAR>safe</VAR>, <VAR>reinvest</VAR>, <VAR>reinvmin</VAR>)</CODE>
<DD><A NAME="IDX342"></A>
  Financial management rate of return.  This function attempts to be a more
  encompassing and consistent version of the internal rate of return, which
  ignores the disposition of intermediate cash in- and outflows.  The
  <CODE>fmrr</CODE> function pulls back negative values to the nearest positive ones
  at the <VAR>safe</VAR> rate (e.g. certificate of deposit rate), and pushes
  forward all outflows to the end of the period as specified by <VAR>rng</VAR>.
  These outflows generate income at the <VAR>reinvest</VAR>ment rate if they
  accumulate to be over <VAR>reinvinmin</VAR>, otherwise at the <VAR>safe</VAR> rate.
<DT><CODE>fv(<VAR>pmt</VAR>, <VAR>r</VAR>, <VAR>term</VAR>)</CODE>
<DD><A NAME="IDX343"></A>
  Future value of an annuity that pays <VAR>pmt</VAR> at the end of each
  of <VAR>term</VAR> periods assuming a discount rate of <VAR>r</VAR>.
<DT><CODE>rate(<VAR>fut</VAR>, <VAR>pres</VAR>, <VAR>term</VAR>)</CODE>
<DD><A NAME="IDX344"></A>
  Interest rate required to turn current principal <VAR>pres</VAR> into
  future principal <VAR>fut</VAR> in <VAR>term</VAR> periods.
<DT><CODE>term(<VAR>pmt</VAR>, <VAR>r</VAR>, <VAR>fut</VAR>)</CODE>
<DD><A NAME="IDX345"></A>
  Number of periods required to collect <VAR>fut</VAR> in payments of
  <VAR>pmt</VAR>, with an interest rate of <VAR>r</VAR>.
<DT><CODE>cterm(<VAR>r</VAR>, <VAR>fut</VAR>, <VAR>pres</VAR>)</CODE>
<DD><A NAME="IDX346"></A>
  Number of periods required to collect <VAR>fut</VAR> from a single deposit
  of <VAR>pres</VAR>, at an interest rate of <VAR>r</VAR>.
<DT><CODE>sln(<VAR>cost</VAR>, <VAR>scrap</VAR>, <VAR>life</VAR>)</CODE>
<DD><A NAME="IDX347"></A>
  Straight line depreciation of an asset that cost <VAR>cost</VAR> when new,
  can be sold for <VAR>scrap</VAR>, and will last for <VAR>life</VAR> periods.
<DT><CODE>syd(<VAR>cost</VAR>, <VAR>scrap</VAR>, <VAR>life</VAR>, <VAR>per</VAR>)</CODE>
<DD><A NAME="IDX348"></A>
  Sum-of-the-digits depreciation in period <VAR>per</VAR> of an asset that cost
  <VAR>cost</VAR>, can be sold for <VAR>scrap</VAR>, and lasts <VAR>life</VAR> periods.
<DT><CODE>ddb(<VAR>cost</VAR>, <VAR>scrap</VAR>, <VAR>life</VAR>, <VAR>per</VAR>)</CODE>
<DD><A NAME="IDX349"></A>
  Double-declining-balance depreciation; similar to <CODE>syd()</CODE>.
<DT><CODE>anrate(<VAR>pmt</VAR>, <VAR>p</VAR>, <VAR>term</VAR>)</CODE>
<DD><A NAME="IDX350"></A>
  Solve <CODE>pmt(pmt, r, term) == p</CODE> for <VAR>r</VAR>.
<DT><CODE>anterm(<VAR>pmt</VAR>, <VAR>prin</VAR>, <VAR>r</VAR>)</CODE>
<DD><A NAME="IDX351"></A>
  Solve <CODE>pmt(pmt, r, term) == p</CODE> for <VAR>term</VAR>.
<DT><CODE>balance(<VAR>p</VAR>, <VAR>r</VAR>, <VAR>term</VAR>, <VAR>n</VAR>)</CODE>
<DD><A NAME="IDX352"></A>
  After <VAR>n</VAR> payments (of <CODE>pmt(p, r, term)</CODE>) towards a debt of 
  <VAR>p</VAR> at interest rate <VAR>r</VAR> over <VAR>term</VAR> periods, this function
  gives the amount left due.
<DT><CODE>paidint(<VAR>p</VAR>, <VAR>r</VAR>, <VAR>term</VAR>, <VAR>n</VAR>)</CODE>
<DD><A NAME="IDX353"></A>
  After <VAR>n</VAR> payments (of <CODE>pmt(p, r, term)</CODE>) towards a debt of 
  <VAR>p</VAR> at interest rate <VAR>r</VAR> over <VAR>term</VAR> periods, this function
  gives the sum of the amounts of the payments which have gone to service
  the interest on the debt.
<DT><CODE>kint(<VAR>p</VAR>, <VAR>r</VAR>, <VAR>term</VAR>, <VAR>n</VAR>)</CODE>
<DD><A NAME="IDX354"></A>
  At period <VAR>n</VAR>, this amount goes towards paying the interest on the
  amortizing loan at rate <VAR>r</VAR>, term <VAR>term</VAR>, and principal <VAR>p</VAR>.
<DT><CODE>kprin(<VAR>p</VAR>, <VAR>r</VAR>, <VAR>term</VAR>, <VAR>n</VAR>)</CODE>
<DD><A NAME="IDX355"></A>
  At period <VAR>n</VAR>, this amount goes towards reducing the principal on the
  amortizing loan at rate <VAR>r</VAR>, term <VAR>term</VAR>, and principal <VAR>p</VAR>.
  Note that <CODE>kint(p,r,term,n)+kprin(p,r,term,n)==pmt(p,r,term)</CODE>.
<DT><CODE>compbal(<VAR>p</VAR>, <VAR>r</VAR>, <VAR>term</VAR>)</CODE>
<DD><A NAME="IDX356"></A>
  Compound balance.  Returns the value of principal <VAR>p</VAR> after earning
  interest <VAR>r</VAR> over <VAR>term</VAR> terms.
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC90"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC89"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC91"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 11.7 Date Functions </H2>
<!--docid::SEC90::-->
<P>

<A NAME="HelpDateFunctions">
</P><P>

  Functions for manipulating date and time.  Arguments named <VAR>time</VAR>
are times in seconds, either an arbitrary count or from a specific epoch
(i.e., local time), unless otherwise noted.  Here are some examples.
Assume that the date is December 16, 1994, and the time is 7:56 am.
The left hand column is the command, and the right hand column is the
result. 
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre></P><P>

          local_month(now())             11
          ctime(now())                   Fri Dec 16 7:58:34 1994
          strftime("%d-%b-%C",now())     11-12-94
</pre></td></tr></table></P><P>

<DL COMPACT>
<DT><CODE>now()</CODE>
<DD><A NAME="IDX357"></A>
  Time of day.  Returns the current time in seconds since Jan 1 1970.
<DT><CODE>ctime(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX358"></A>
  Converts <VAR>time</VAR> into a date/time string.  <VAR>time</VAR> is seconds
since the the epoch, as returned by <CODE>now()</CODE>.
<DT><CODE>hms_to_time(<VAR>hours</VAR>, <VAR>minutes</VAR>, <VAR>seconds</VAR>)</CODE>
<DD><DT><CODE>dhms_to_time(<VAR>days</VAR>, <VAR>hours</VAR>, <VAR>minutes</VAR>, <VAR>seconds</VAR>)</CODE>
<DD><A NAME="IDX359"></A>
<A NAME="IDX360"></A>
  Converts <VAR>days</VAR>, <VAR>hours</VAR>, <VAR>mins</VAR>, <VAR>seconds</VAR> to a count
of seconds.
<DT><CODE>time_to_d(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>time_to_h(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>time_to_m(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>time_to_s(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX361"></A>
<A NAME="IDX362"></A>
<A NAME="IDX363"></A>
<A NAME="IDX364"></A>
  Returns the number of days, hours (0..23), minutes (0..59), or seconds
(0..59) in <VAR>time</VAR> seconds.
<DT><CODE>ymd(<VAR>year</VAR>, <VAR>month</VAR>, <VAR>day</VAR>)</CODE>
<DD><DT><CODE>ymd_dst(<VAR>year</VAR>, <VAR>month</VAR>, <VAR>day</VAR>, <VAR>dst</VAR>)</CODE>
<DD><A NAME="IDX365"></A>
<A NAME="IDX366"></A>
  Convert <VAR>year</VAR>, <VAR>month</VAR>, and <VAR>day</VAR> to the number of
seconds since January 1, 1970 (typically).  The conversion assumes the
local time zone.  For <CODE>ymd_dst()</CODE>, if <VAR>dst</VAR> is positive,
daylight savings time is assumed; if 0, standard time; and if negative,
neither (i.e., the same as <CODE>ymd()</CODE>).
<DT><CODE>local_year(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>local_month(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX367"></A>
<A NAME="IDX368"></A>
  For a time in seconds (e.g., as returned by <CODE>now()</CODE>) return its
year or month in the local timezone.
<DT><CODE>local_date(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX369"></A>
  Returns the date in the local timezone of <VAR>time</VAR>.
<DT><CODE>local_hour(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>local_min(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>local_sec(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX370"></A>
<A NAME="IDX371"></A>
<A NAME="IDX372"></A>
  Returns the hour, minutes or seconds in the local timezone of
<VAR>time</VAR>.
<DT><CODE>local_isdst(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX373"></A>
  Returns <VAR>dst</VAR> in the local timezone for <VAR>time</VAR>.  The return is
positive if daylight savings time is in effect, 0 otherwise.
<DT><CODE>local_yday(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>local_wday(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX374"></A>
<A NAME="IDX375"></A>
  Returns the give day-of-year (0..364 or 0..365 for leap years) or
day-of-week (0..6) in the local timezone for <VAR>time</VAR>.
<DT><CODE>gmt_year(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>gmt_month(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>gmt_date(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX376"></A>
<A NAME="IDX377"></A>
<A NAME="IDX378"></A>
  Returns the year, month, or day in Greenwich of <VAR>time</VAR>.
<DT><CODE>gmt_hour(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>gmt_min(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>gmt_sec(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX379"></A>
<A NAME="IDX380"></A>
<A NAME="IDX381"></A>
  Returns the hour, minutes or seconds in Greenwich of <VAR>time</VAR>.
<DT><CODE>gmt_isdst(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX382"></A>
  Returns a positive value if daylight savings time is in effect in
Greenwich <VAR>time</VAR>, 0 otherwise.
<DT><CODE>gmt_yday(<VAR>time</VAR>)</CODE>
<DD><DT><CODE>gmt_wday(<VAR>time</VAR>)</CODE>
<DD><A NAME="IDX383"></A>
<A NAME="IDX384"></A>
  Returns the day-of-year (0..365) or day-of-week (0..6) in Greenwich.
<DT><CODE>get_date(<VAR>date</VAR>)</CODE>
<DD><DT><CODE>posix_date(<VAR>date</VAR>)</CODE>
<DD><A NAME="IDX385"></A>
<A NAME="IDX386"></A>
  Parse a string date and return its time (seconds since epoch).  The
syntax of <VAR>date</VAR> is the same as is understood by GNU tar or GNU date
for <CODE>get_date()</CODE>, and as per the Posix standard for
<CODE>posix_date()</CODE>.
<DT><CODE>strftime(<VAR>format</VAR>, <VAR>time</VAR>)</CODE>
<DD><A NAME="IDX387"></A>
  Returns a string according to <VAR>format</VAR> describing <VAR>time</VAR> (as
returned by <CODE>now()</CODE>).  This function is implemented by the C
library function <CODE>strftime()</CODE>.  The following documentation
describes the GNU implementation of <CODE>strftime()</CODE>.  Your version of
Oleo may have been built with a different version, in which case, you
can find documentation in the <CODE>strftime()</CODE> man page.  (In the
future this anomaly will be removed).
<P>

Performs <SAMP>`%'</SAMP> substitutions similar to those in <CODE>printf()</CODE>.
Except where noted, substituted fields have a fixed size; numeric fields
are padded if necessary.  Padding is with zeros by default; for fields
that display a single number, padding can be changed or inhibited by
following the <SAMP>`%'</SAMP> with one of the modifiers described below.
Unknown field specifiers are copied as normal characters.  All other
characters are copied to the output without change.
</P><P>

Supports a superset of the ANSI C field specifiers.
</P><P>

Literal character fields:
<DL COMPACT>
<DT><SAMP>`%'</SAMP>
<DD>  <SAMP>`%'</SAMP>
<DT><SAMP>`n'</SAMP>
<DD>  newline
<DT><SAMP>`t'</SAMP>
<DD>  tab
</DL>
<P>

Numeric modifiers (a nonstandard extension):
<DL COMPACT>
<DT><SAMP>`-'</SAMP>
<DD>  do not pad the field
<DT><SAMP>`_'</SAMP>
<DD>  pad the field with spaces
</DL>
<P>

Time fields:
<DL COMPACT>
<DT><SAMP>`%H'</SAMP>
<DD>  hour (<SAMP>`00'</SAMP>..<SAMP>`23'</SAMP>)
<DT><SAMP>`%I'</SAMP>
<DD>  hour (<SAMP>`01'</SAMP>..<SAMP>`12'</SAMP>)
<DT><SAMP>`%k'</SAMP>
<DD>  hour (<SAMP>` 0'</SAMP>..<SAMP>`23'</SAMP>)
<DT><SAMP>`%l'</SAMP>
<DD>  hour (<SAMP>` 1'</SAMP>..<SAMP>`12'</SAMP>)
<DT><SAMP>`%M'</SAMP>
<DD>  minute (<SAMP>`00'</SAMP>..<SAMP>`59'</SAMP>)
<DT><SAMP>`%p'</SAMP>
<DD>  locale's AM or PM
<DT><SAMP>`%r'</SAMP>
<DD>  time, 12-hour (<SAMP>`<VAR>hh</VAR>:<VAR>mm</VAR>:<VAR>ss</VAR> A/PM'</SAMP>)
<DT><SAMP>`%R'</SAMP>
<DD>  time, 24-hour (<SAMP>`<VAR>hh</VAR>:<VAR>mm</VAR>'</SAMP>)
<DT><SAMP>`%S'</SAMP>
<DD>  second (<SAMP>`00'</SAMP>..<SAMP>`61'</SAMP>)
<DT><SAMP>`%T'</SAMP>
<DD>  time, 24-hour (<SAMP>`<VAR>hh</VAR>:<VAR>mm</VAR>:<VAR>ss</VAR>'</SAMP>)
<DT><SAMP>`%X'</SAMP>
<DD>  locale's time representation (<SAMP>`%H:%M:%S'</SAMP>)
<DT><SAMP>`%Z'</SAMP>
<DD>  time zone (EDT), or nothing if no time zone is determinable
</DL>
<P>

Date fields:
<DL COMPACT>
<DT><SAMP>`%a'</SAMP>
<DD>  locale's abbreviated weekday name (<SAMP>`Sun'</SAMP>..<SAMP>`Sat'</SAMP>)
<DT><SAMP>`%A'</SAMP>
<DD>  locale's full weekday name, variable length
(<SAMP>`Sunday'</SAMP>..<SAMP>`Saturday'</SAMP>)
<DT><SAMP>`%b'</SAMP>
<DD>  locale's abbreviated month name (<SAMP>`Jan'</SAMP>..<SAMP>`Dec'</SAMP>)
<DT><SAMP>`%B'</SAMP>
<DD>  locale's full month name, variable length
(<SAMP>`January'</SAMP>..<SAMP>`December'</SAMP>)
<DT><SAMP>`%c'</SAMP>
<DD>  locale's date and time (<SAMP>`Sat Nov 04 12:02:33 EST 1989'</SAMP>)
<DT><SAMP>`%C'</SAMP>
<DD>  century (<SAMP>`00'</SAMP>..<SAMP>`99'</SAMP>)
<DT><SAMP>`%d'</SAMP>
<DD>  day of month (<SAMP>`01'</SAMP>..<SAMP>`31'</SAMP>)
<DT><SAMP>`%e'</SAMP>
<DD>  day of month (<SAMP>` 1'</SAMP>..<SAMP>`31'</SAMP>)
<DT><SAMP>`%D'</SAMP>
<DD>  date (<SAMP>`<VAR>mm</VAR>/<VAR>dd</VAR>/<VAR>yy</VAR>'</SAMP>)
<DT><SAMP>`%h'</SAMP>
<DD>  same as <SAMP>`%b'</SAMP>
<DT><SAMP>`%j'</SAMP>
<DD>  day of year (<SAMP>`001'</SAMP>..<SAMP>`366'</SAMP>)
<DT><SAMP>`%m'</SAMP>
<DD>  month (<SAMP>`01'</SAMP>..<SAMP>`12'</SAMP>)
<DT><SAMP>`%U'</SAMP>
<DD>  week number of year with Sunday as first day of week
(<SAMP>`00'</SAMP>..<SAMP>`53'</SAMP>)
<DT><SAMP>`%w'</SAMP>
<DD>  day of week (<SAMP>`0'</SAMP>..<SAMP>`6'</SAMP>)
<DT><SAMP>`%W'</SAMP>
<DD>  week number of year with Monday as first day of week
(<SAMP>`00'</SAMP>..<SAMP>`53'</SAMP>)
<DT><SAMP>`%x'</SAMP>
<DD>  locale's date representation (<SAMP>`<VAR>mm</VAR>/<VAR>dd</VAR>/<VAR>yy</VAR>'</SAMP>)
<DT><SAMP>`%y'</SAMP>
<DD>  last two digits of year (<SAMP>`00'</SAMP>..<SAMP>`99'</SAMP>)
<DT><SAMP>`%Y'</SAMP>
<DD>  year (<SAMP>`1970'</SAMP>...)
</DL>
</DL>
<P>

<HR SIZE="6">
<A NAME="SEC91"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC90"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 11.8 GSL Functions </H2>
<!--docid::SEC91::-->
<P>

The GNU Scientific Library (GSL) is a collection of routines for
numerical computing.  The routines are written from scratch by the GSL
team in C, and are meant to present a
modern Applications Programming Interface (API) for C programmers, while
allowing wrappers to be written for very high level languages.
</P><P>

More information about GSL is available from <A HREF="http://sources.redhat.com/gsl/">http://sources.redhat.com/gsl/</A>
</P><P>

Currently only a small subset of the GSL functions (as they are in GSL 0.6) are
made available in Oleo. They're most of the statistical functions :
<DL COMPACT>
<DT><SAMP>`gsl_stats_mean'</SAMP>
<DD><DT><SAMP>`gsl_stats_variance'</SAMP>
<DD><DT><SAMP>`gsl_stats_sd'</SAMP>
<DD><DT><SAMP>`gsl_stats_absdev'</SAMP>
<DD><DT><SAMP>`gsl_stats_skew'</SAMP>
<DD><DT><SAMP>`gsl_stats_kurtosis'</SAMP>
<DD><DT><SAMP>`gsl_stats_lag1_autocorrelation'</SAMP>
<DD><DT><SAMP>`gsl_stats_median_from_sorted_data'</SAMP>
<DD><DT><SAMP>`gsl_stats_quantile_from_sorted_data'</SAMP>
<DD><DT><SAMP>`gsl_stats_variance_m'</SAMP>
<DD><DT><SAMP>`gsl_stats_sd_m'</SAMP>
<DD><DT><SAMP>`gsl_stats_variance_with_fixed_mean'</SAMP>
<DD><DT><SAMP>`gsl_stats_sd_with_fixed_mean'</SAMP>
<DD><DT><SAMP>`gsl_stats_absdev_m'</SAMP>
<DD><DT><SAMP>`gsl_stats_skew_m_sd'</SAMP>
<DD><DT><SAMP>`gsl_stats_kurtosis_m_sd'</SAMP>
<DD></DL>
<P>

The API made available in Oleo for these functions differs slightly from
the native C API of GSL. The C API provides for a <CODE>stride</CODE> and a <CODE>number</CODE>
parameter when passing a data array. In Oleo, both of these are not explicitly passed.
</P><P>

For example, the <CODE>gsl_stats_mean</CODE> function has just one parameter in Oleo,
which is a range of cells from which it calculates the mean. <CODE>oleo_gsl_stats_kurtosis_m_sd</CODE>
has three parameters : a range of cells, and two numbers.
<A NAME="IDX388"></A>
</P><P>

<HR SIZE="6">
<A NAME="SEC92"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC91"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC93"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC80"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC94"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 12. Extending the Oleo system </H1>
<!--docid::SEC92::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC93">New at functions</A></TD><TD ALIGN="left">Adding new at Functions</TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC93"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC94"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC94"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 12.1 Adding new at Functions </H2>
<!--docid::SEC93::-->
<P>

It is easy to add new @ functions.  Suppose that I want to add 
a greatest common divisor function.  Here is a definition:
<TABLE><tr><td>&nbsp;</td><td><pre>int gcd(i,k)
    int i,k;
{     
  int c;
  if ( i &#60; 0 )  i = -i;
  if ( k &#60; 0 )  k = -k;
  while ( k != 0 ) {
    c = k;
    k = i % k;
    i = c;
  }
  return  i;
}
</pre></td></tr></table></P><P>

In Oleo, I would like to enter <CODE>@gcd(6,20)</CODE>, and have the result
<CODE>2</CODE> displayed.  The following files need to be changed or created:
</P><P>

<DL COMPACT>
<DT><TT>`my-new-functions.c'</TT>
<DD><P>

We will create a new class of functions called <VAR>int_funs</VAR>.  For
simplicity, there is only one function, <CODE>gcd</CODE>, in this class, but
there could be many more. In addition to the code given above for <VAR>gcd</VAR>, 
we need an interface between Oleo and <VAR>gcd</VAR>.  
<TABLE><tr><td>&nbsp;</td><td><pre>static void
do_gcd (p)
     struct value *p;
{
  int arg0 = p[0].Int;
  int arg1 = p[1].Int;
</P><P>

  p-&#62;Int = gcd (arg0,arg1);
  p-&#62;type = TYP_INT;
}
</pre></td></tr></table></P><P>

Next, we need to give information about the members of this new class of
functions.  The "II" refers to the two integer arguments.  For more
examples, see <TT>`busi.c'</TT>.
<TABLE><tr><td>&nbsp;</td><td><pre>struct function int_funs[] =
{
  {C_FN2, X_A2, "II", do_gcd, "gcd"},
  {0, 0, "", 0, 0},
};
</pre></td></tr></table></P><P>

Oleo also (as of release 1.99.6) requires a function in each file to figure
out how many new user accessible functions it contains.
Look in busi.c for a simple example (init_busi_function_count) which will
probably work for your new functions as well.
As you can see the function simply takes information from the above array
and offers it to another Oleo module.
</P><P>

Finally, we need some standard headers and defines.  These are probably
not all necessary.
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>#include "funcdef.h"
#include "sysdef.h"
#include "global.h"
#include "cell.h"
#include "eval.h"
#include "errors.h"
</P><P>

struct value
  {
    int type;
    union vals x;
  };
</P><P>

#define Float	x.c_d
#define String	x.c_s
#define Int	x.c_l
#define Value	x.c_i
#define Rng	x.c_r
</pre></td></tr></table></P><P>

<DT><TT>`forminfo.c'</TT>
<DD><P>

It's polite to add information about new functions.  This information
can be added in an appropriate place in <TT>`forminfo.c'</TT>:
<TABLE><tr><td>&nbsp;</td><td><pre>"gcd",
"find gcd                       gcd(a,b)",
""
"The greatest common divisor of A and B.",
0,
</pre></td></tr></table></P><P>

<DT><TT>`byte-compile.c'</TT>
<DD><P>

The byte compiler needs to be told about the new class of functions.  
We declare the new class of functions:
<TABLE><tr><td>&nbsp;</td><td><pre>extern struct function int_funs[];
</pre></td></tr></table>and instruct the compiler to read them by adding the class to
the appropriate structure.
<TABLE><tr><td>&nbsp;</td><td><pre>static struct function *__usr_funs[] =
{
  date_funs,
  busi_funs,
  string_funs,
  cells_funs,
  int_funs,
};
</P><P>

extern int init_int_function_count(void);
</P><P>

static init_function_count init_function_counts[] = {
        &#38;init_date_function_count,
        &#38;init_busi_function_count,
        &#38;init_string_function_count,
        &#38;init_cells_function_count,
        &#38;init_int_function_count
        /* Add something here */
};
</P><P>

</pre></td></tr></table></P><P>

<DT><TT>`Makefile.am'</TT>
<DD><P>

The file <TT>`my-new-functions.c'</TT> needs to be added to the list of
source files. Editing the file src/Makefile.am and adding to the
list of files named oleo_SOURCES will do :
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>oleo_SOURCES = parse.y byte-compile.c eval.c ref.c \
 decompile.c sort.c regions.c utils.c lists.c\
 io-term.c io-utils.c io-x11.c window.c io-edit.c\
 line.c key.c format.c funcs.c \
 hash.c ir.c io-curses.c font.c display.c init.c \
 sylk.c oleofile.c sc.c list.c busi.c string.c cells.c \
 cmd.c basic.c args.c \
 stub.c input.c info.c help.c \
 graph.c plot.c \
 forminfo.c posixtm.y date.c xrdb.c \
 $(GUI) $(XBSRC) $(MYSQL) \
 print.c postscript.c pcl.c epson.c prtext.c \
 my-new-functions.c
</pre></td></tr></table></DL>
<P>

<HR SIZE="6">
<A NAME="SEC94"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC93"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC92"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 13. Reporting Bugs </H1>
<!--docid::SEC94::-->
<P>

   If you have problems with Oleo or think that you have found a bug,
please report it; we cannot promise to do anything but we
might well want to fix it.
</P><P>

   Before reporting a bug, make sure you have actually found a real bug. 
Carefully reread the documentation and see if it really says you can do what
you're trying to do.  If it's not clear whether you should be able to do
something or not, report that too; it's a bug in the documentation!
</P><P>

   Before reporting a bug or trying to fix it yourself, try to isolate it to
the smallest possible Oleo program and input data file that reproduces the
problem.  Then send us the program and data file, some idea of what kind of
Unix system you're using, and the exact results Oleo gave you.  Also say
what you expected to occur; this will help us decide whether the problem was
really in the documentation.
</P><P>

   Once you have a precise problem, send e-mail to 
<TT>`bug-oleo@prep.ai.mit.edu'</TT>. 
</P><P>

   Non-bug suggestions are always welcome as well.  If you have questions
about things that are unclear in the documentation or are just obscure
features, send a note to <TT>`bug-oleo@prep.ai.mit.edu'</TT>.
</P><P>

Also, if you wish to add to the documentation, please do so.  Send your
additions to the address above.
<HR SIZE="6">
<A NAME="SEC95"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC94"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC96"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC94"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 14. A Motif Graphical User Interface for Oleo </H1>
<!--docid::SEC95::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC96">14.1 Motif Introduction</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC97">14.2 LessTif</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC98">14.3 Advantages</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC99">14.4 What you need</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC100">14.5 Alternatives</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC101">14.6 Using the mouse</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC102">14.7 Using the keyboard shortcuts</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC103">14.8 Using Help</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC104">14.9 Fallback</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC105">14.10 Motif Buttons in a Spreadsheet Cell</A></TD><TD ALIGN="left"></TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC96"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC97"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.1 Motif Introduction </H2>
<!--docid::SEC96::-->
<P>

Motif is a toolkit for building graphical user interfaces (GUIs)
with the X Window System.
</P><P>

Such a GUI has been built for oleo.
The combination of oleo and its Motif interface
comes close to professional quality spreadsheets
that one can buy off the shelf.
</P><P>

<HR SIZE="6">
<A NAME="SEC97"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC96"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC98"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.2 LessTif </H2>
<!--docid::SEC97::-->
<P>

When this manual talks about Motif,
it refers to what is commonly referred to as OSF/Motif,
a user interface toolkit for the X Window System which was
originally developped by the Open Software Foundation (OSF).
The OSF has merged with X/Open,
the new name of the organisation is The Open Group.
</P><P>

A free implementation of Motif, called LessTif,
which is available from
<A HREF="http://www.lesstif.org">the LessTif home page</A>,
can be used instead of Motif.
</P><P>

LessTif is covered by the LGPL (Library General Public License).
</P><P>

<HR SIZE="6">
<A NAME="SEC98"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC97"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC99"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.3 Advantages </H2>
<!--docid::SEC98::-->
<P>

Advantages to using either the Motif or the GTK interface to Oleo
are the same as for any GUI: users with little experience will find
it easier to get started with the application.
The GUI interfaces also happen to be more aesthetically pleasing.
</P><P>

<HR SIZE="6">
<A NAME="SEC99"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC98"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC100"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.4 What you need </H2>
<!--docid::SEC99::-->
<P>

A user of Oleo typically only needs a recent Oleo distribution,
which he installs through his operating system's standard mechanism.
</P><P>

Someone who's building Oleo from sources will need several packages
that Oleo depends on :
<UL>
<LI>Xbae widgets
<A HREF="http://www.lesstif.org">http://www.lesstif.org</A>
<A HREF="ftp://ftp.lesstif.org/pub/hungry/lesstif/srcdist">ftp://ftp.lesstif.org/pub/hungry/lesstif/srcdist</A>
<LI>XmHTML
<A HREF="http://www.xs4all.nl/~ripley/XmHTML">http://www.xs4all.nl/~ripley/XmHTML</A>
<LI>GNU plotutils
<A HREF="http://www.gnu.org/software/plotutils/plotutils.html">http://www.gnu.org/software/plotutils/plotutils.html</A>
<LI>Motif or LessTif
<A HREF="http://www.opengroup.org">http://www.opengroup.org</A>
<A HREF="http://www.lesstif.org">http://www.lesstif.org</A>
<LI>GNU gettext
<A HREF="http://www.gnu.org">http://www.gnu.org</A>
<LI>GNU texinfo (3.12 or later)
<A HREF="http://www.gnu.org">http://www.gnu.org</A>
</UL>
<P>

<HR SIZE="6">
<A NAME="SEC100"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC99"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC101"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.5 Alternatives </H2>
<!--docid::SEC100::-->
<P>

Another toolkit for building GUIs is GTK.
It is also freely available,
and another user interface for oleo may be built with it too.
</P><P>

GTK is the FSF's official GUI toolkit.
</P><P>

<HR SIZE="6">
<A NAME="SEC101"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC100"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC102"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.6 Using the mouse </H2>
<!--docid::SEC101::-->
<P>

The mouse is used in the same manner as in any Motif application.
</P><P>

The top of the Oleo window is a horizontal bar which is called the menu bar.
It consists of a small number of buttons
(represented by words such as File, Edit, ...).
</P><P>

Using the mouse to point at such a word, you can click MB1
on such a button to make a pulldown menu appear.
MB1 is usually the left mouse button.
</P><P>

The words in these pulldown menus are action buttons which should perform
actions that the user can understand.
</P><P>

You can select a cell in the spreadsheet by clicking MB1 in it.
Once a cell is selected, its position and current value are displayed
in a status area in the upper left of the Oleo window
(just below the menu bar).
The area to the right of that is the formula editor:
it displays the formula on this cell, if any.
</P><P>

Formulas should be edited in the formula editor.
</P><P>

<HR SIZE="6">
<A NAME="SEC102"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC101"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC103"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.7 Using the keyboard shortcuts </H2>
<!--docid::SEC102::-->
<P>

Using the method described above you can pull down a menu which reveals
a number of action buttons. These buttons typically contain a text such
as <CODE>Open   Ctrl-O</CODE>.
</P><P>

Additionally, the O is underlined.
</P><P>

The Ctrl-O means that you can press down the Control key on your keyboard,
and while doing that, depress the O key. This should activate the button.
</P><P>

The underlining means that once you've pulled down this menu,
you should be able to activate this button by just the O key.
</P><P>

The pulldown menu, which was indicated by the word File (with underlined F),
can in itself be triggered by pressing the Alt key and depressing the F key.
</P><P>

<HR SIZE="6">
<A NAME="SEC103"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC102"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC104"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.8 Using Help </H2>
<!--docid::SEC103::-->
<P>

<HR SIZE="6">
<A NAME="SEC104"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC103"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC105"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.9 Fallback </H2>
<!--docid::SEC104::-->
<P>

If you have a version of oleo that has been built with Motif support,
but you don't currently have an X Window System display
(for instance you're using a dialup connection),
then it is still possible to use the curses based character user interface.
</P><P>

The command <CODE>oleo -t</CODE> should start Oleo with a curses based user interface,
even if you're running in an X environment.
</P><P>

<HR SIZE="6">
<A NAME="SEC105"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC104"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 14.10 Motif Buttons in a Spreadsheet Cell </H2>
<!--docid::SEC105::-->
<P>

You can put a button in a cell in the Motif version.
The formula of the cell that you want to have a button should be
<CODE> button("text", "cell-specification")</CODE>
</P><P>

The first argument is the text that the button will show, the second argument
is the cell whose content will be executed. That cell will typically contain a
command like <CODE>psprint-region r3:45c8:13 invoice.ps</CODE>
</P><P>

Note that this is currently an experimental feature.
<HR SIZE="6">
<A NAME="SEC106"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC105"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC107"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC95"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC110"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 15. Accessing Databases </H1>
<!--docid::SEC106::-->
<P>

<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> 
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC107">15.1 Database Access Introduction</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC108">15.2 MySQL</A></TD><TD ALIGN="left"></TD><TR>
<TR><TD ALIGN="left"><A HREF="oleo.html#SEC109">15.3 Xbase</A></TD><TD ALIGN="left"></TD><TR>
</TABLE></BLOCKQUOTE>
<P>

<HR SIZE="6">
<A NAME="SEC107"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC108"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC110"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 15.1 Database Access Introduction </H2>
<!--docid::SEC107::-->
<P>

Oleo can interface to database management systems (DBMSs) in more than one
way.
</P><P>

This is work in progress though, we expect the implementation to evolve
quite a bit from the current status.
</P><P>

Currently there are three ways of accessing databases from Oleo :
<UL>
<LI>reading a DBF (xbase) file
<LI>reading rows of content from an MySQL database, prompted by the user
<LI>reading the single result of an SQL query (to MySQL) into a cell
</UL>
<P>

<A NAME="HelpMySQL">
</P><P>

<HR SIZE="6">
<A NAME="SEC108"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC107"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC109"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC110"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 15.2 MySQL </H2>
<!--docid::SEC108::-->
<P>

You can get a value from a database into a cell by putting a statement
like 
</P><P>

<TABLE><tr><td>&nbsp;</td><td><pre>@mysql_query("select max(salary) from salaries")
</pre></td></tr></table></P><P>

in the cell.
</P><P>

<HR SIZE="6">
<A NAME="SEC109"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC108"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC110"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC106"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC110"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 15.3 Xbase </H2>
<!--docid::SEC109::-->
<P>

<HR SIZE="6">
<A NAME="SEC110"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC109"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC111"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC111"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 16. Key Index </H1>
<!--docid::SEC110::-->
<H3>Jump to:</H3>
<A HREF="#kindex_=">=</A>
 &nbsp; 
<A HREF="#kindex_c">C</A>
 &nbsp; 
<A HREF="#kindex_m">M</A>
<P></P><P></P>
<TABLE border=0>
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="kindex_=">=</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX107">=</A></TD><TD><A HREF="oleo.html#SEC31">2.2 Entering values in a cell</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="kindex_c">C</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX136">C-?</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX13">C-@</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX54">C-a</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX128">C-a</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX29">C-b</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX130">C-b</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX134">C-d</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX53">C-e</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX125">C-e</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX129">C-e</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX30">C-f</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX132">C-f</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX77">C-h</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX79">C-h c</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX276">C-h c</A></TD><TD><A HREF="oleo.html#SEC79">10. Keymaps and defining keys</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX78">C-h C</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX74">C-h C-v</A></TD><TD><A HREF="oleo.html#SEC20">1.8 Regions and Variables</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX91">C-h C-v</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX97">C-h C-w</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX83">C-h f</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX85">C-h F</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX81">C-h k</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX93">C-h o</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX76">C-h v</A></TD><TD><A HREF="oleo.html#SEC20">1.8 Regions and Variables</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX89">C-h v</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX87">C-h w</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX95">C-h W</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX138">C-k</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX156">C-k</A></TD><TD><A HREF="oleo.html#SEC37">3.3 Deleting</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX213">C-M-v</A></TD><TD><A HREF="oleo.html#SEC54">5.3 Using Other Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX31">C-n</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX139">C-o</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX161">C-o</A></TD><TD><A HREF="oleo.html#SEC38">3.4 Inserting Rows and Columns</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX32">C-p</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX12">C-u C-@</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX10">C-u C-x C-x</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX67">C-v</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX23">C-x !</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX265">C-x (</A></TD><TD><A HREF="oleo.html#SEC72">8.2 Basic Use</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX266">C-x )</A></TD><TD><A HREF="oleo.html#SEC72">8.2 Basic Use</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX218">C-x 0</A></TD><TD><A HREF="oleo.html#SEC55">5.4 Deleting and Rearranging Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX220">C-x 1</A></TD><TD><A HREF="oleo.html#SEC55">5.4 Deleting and Rearranging Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX202">C-x 2</A></TD><TD><A HREF="oleo.html#SEC53">5.2 Splitting Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX205">C-x 5</A></TD><TD><A HREF="oleo.html#SEC53">5.2 Splitting Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX75">C-x :</A></TD><TD><A HREF="oleo.html#SEC20">1.8 Regions and Variables</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX69">C-x &#60;</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX68">C-x &#62;</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX11">C-x C-x</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX267">C-x e</A></TD><TD><A HREF="oleo.html#SEC72">8.2 Basic Use</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX15">C-x j</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX210">C-x o</A></TD><TD><A HREF="oleo.html#SEC54">5.3 Using Other Windows</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="kindex_m">M</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX56">M-&#60;</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX108">M-=</A></TD><TD><A HREF="oleo.html#SEC31">2.2 Entering values in a cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX55">M-&#62;</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX126">M-a</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX167">M-a a</A></TD><TD><A HREF="oleo.html#SEC40">4.1 Alignment</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX173">M-a f</A></TD><TD><A HREF="oleo.html#SEC41">4.2 Formats for numbers</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX179">M-a h</A></TD><TD><A HREF="oleo.html#SEC46">4.3 Changing the height of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX198">M-a o</A></TD><TD><A HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX191">M-a p</A></TD><TD><A HREF="oleo.html#SEC49">4.6 Protection</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX185">M-a w</A></TD><TD><A HREF="oleo.html#SEC47">4.4 Changing the width of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX41">M-b</A></TD><TD><A HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX131">M-b</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX148">M-c</A></TD><TD><A HREF="oleo.html#SEC35">3.1 Copying</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX137">M-C-?</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX154">M-C-?</A></TD><TD><A HREF="oleo.html#SEC37">3.3 Deleting</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX52">M-C-a</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX147">M-C-c</A></TD><TD><A HREF="oleo.html#SEC35">3.1 Copying</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX51">M-C-e</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX135">M-d</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX165">M-d a</A></TD><TD><A HREF="oleo.html#SEC40">4.1 Alignment</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX171">M-d f</A></TD><TD><A HREF="oleo.html#SEC41">4.2 Formats for numbers</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX177">M-d h</A></TD><TD><A HREF="oleo.html#SEC46">4.3 Changing the height of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX196">M-d o</A></TD><TD><A HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX189">M-d p</A></TD><TD><A HREF="oleo.html#SEC49">4.6 Protection</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX183">M-d w</A></TD><TD><A HREF="oleo.html#SEC47">4.4 Changing the width of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX124">M-e</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX42">M-f</A></TD><TD><A HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX133">M-f</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX155">M-k</A></TD><TD><A HREF="oleo.html#SEC37">3.3 Deleting</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX150">M-m</A></TD><TD><A HREF="oleo.html#SEC36">3.2 Moving Cells and Regions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX43">M-n</A></TD><TD><A HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX160">M-o</A></TD><TD><A HREF="oleo.html#SEC38">3.4 Inserting Rows and Columns</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX44">M-p</A></TD><TD><A HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX127">M-r</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX166">M-r a</A></TD><TD><A HREF="oleo.html#SEC40">4.1 Alignment</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX172">M-r f</A></TD><TD><A HREF="oleo.html#SEC41">4.2 Formats for numbers</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX178">M-r h</A></TD><TD><A HREF="oleo.html#SEC46">4.3 Changing the height of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX197">M-r o</A></TD><TD><A HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX190">M-r p</A></TD><TD><A HREF="oleo.html#SEC49">4.6 Protection</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX184">M-r w</A></TD><TD><A HREF="oleo.html#SEC47">4.4 Changing the width of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX66">M-v</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX14">M-x j</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
</TABLE>
<P>

<HR SIZE="6">
<A NAME="SEC111"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC110"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC112"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC110"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC112"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 17. Command Index </H1>
<!--docid::SEC111::-->
<H3>Jump to:</H3>
<A HREF="#cmindex_b">B</A>
 &nbsp; 
<A HREF="#cmindex_c">C</A>
 &nbsp; 
<A HREF="#cmindex_d">D</A>
 &nbsp; 
<A HREF="#cmindex_e">E</A>
 &nbsp; 
<A HREF="#cmindex_g">G</A>
 &nbsp; 
<A HREF="#cmindex_i">I</A>
 &nbsp; 
<A HREF="#cmindex_l">L</A>
 &nbsp; 
<A HREF="#cmindex_m">M</A>
 &nbsp; 
<A HREF="#cmindex_n">N</A>
 &nbsp; 
<A HREF="#cmindex_o">O</A>
 &nbsp; 
<A HREF="#cmindex_p">P</A>
 &nbsp; 
<A HREF="#cmindex_r">R</A>
 &nbsp; 
<A HREF="#cmindex_s">S</A>
 &nbsp; 
<A HREF="#cmindex_t">T</A>
 &nbsp; 
<A HREF="#cmindex_u">U</A>
 &nbsp; 
<A HREF="#cmindex_v">V</A>
 &nbsp; 
<A HREF="#cmindex_w">W</A>
<P></P><P></P>
<TABLE border=0>
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_b">B</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX49">beginning-of-column</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX47">beginning-of-row</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX273">bind-key</A></TD><TD><A HREF="oleo.html#SEC79">10. Keymaps and defining keys</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX2">break</A></TD><TD><A HREF="oleo.html#SEC1">1. Basics</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_c">C</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX270">call-last-kbd-macro</A></TD><TD><A HREF="oleo.html#SEC72">8.2 Basic Use</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX157">clear-spreadsheet</A></TD><TD><A HREF="oleo.html#SEC37">3.3 Deleting</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX145">copy-region</A></TD><TD><A HREF="oleo.html#SEC35">3.1 Copying</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX146">copy-values-in-region</A></TD><TD><A HREF="oleo.html#SEC35">3.1 Copying</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX115">cursor-back-char</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX116">cursor-back-word</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX113">cursor-begin-line</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX114">cursor-end-line</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX117">cursor-fwd-char</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX118">cursor-fwd-word</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_d">D</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX152">delete-col</A></TD><TD><A HREF="oleo.html#SEC37">3.3 Deleting</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX119">delete-next-char</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX120">delete-next-word</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX217">delete-other-windows</A></TD><TD><A HREF="oleo.html#SEC55">5.4 Deleting and Rearranging Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX221">delete-other-windows</A></TD><TD><A HREF="oleo.html#SEC55">5.4 Deleting and Rearranging Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX121">delete-prev-char</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX122">delete-prev-word</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX153">delete-region</A></TD><TD><A HREF="oleo.html#SEC37">3.3 Deleting</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX151">delete-row</A></TD><TD><A HREF="oleo.html#SEC37">3.3 Deleting</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX123">delete-to-end</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX141">delete-to-start</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX216">delete-window</A></TD><TD><A HREF="oleo.html#SEC55">5.4 Deleting and Rearranging Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX219">delete-window</A></TD><TD><A HREF="oleo.html#SEC55">5.4 Deleting and Rearranging Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX86">describe-formula-function</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX84">describe-function</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX82">describe-key</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX275">describe-key</A></TD><TD><A HREF="oleo.html#SEC79">10. Keymaps and defining keys</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX80">describe-key-briefly</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX26">down-cell</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX35">downleft-cell</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX36">downright-cell</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_e">E</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX269">end-kbd-macro</A></TD><TD><A HREF="oleo.html#SEC72">8.2 Basic Use</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX50">end-of-column</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX48">end-of-row</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX9">exchange-point-and-mark</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_g">G</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX6">goto-cell</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX7">goto-region</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_i">I</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX109">insert-abs-ref</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX111">insert-cell-expression</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX112">insert-cell-value</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX159">insert-col</A></TD><TD><A HREF="oleo.html#SEC38">3.4 Inserting Rows and Columns</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX110">insert-rel-ref</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX158">insert-row</A></TD><TD><A HREF="oleo.html#SEC38">3.4 Inserting Rows and Columns</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_l">L</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX259">latex-region</A></TD><TD><A HREF="oleo.html#SEC61">7.1 Writing ASCII and Postscript Files</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX28">left-cell</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX46">lower right</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_m">M</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX8">mark-cell</A></TD><TD><A HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX101">merge-spreadsheet</A></TD><TD><A HREF="oleo.html#SEC22">1.10 Saving and Reading Spreadsheets</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX70">mouse-goto</A></TD><TD><A HREF="oleo.html#SEC19">1.7 Using the mouse</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX71">mouse-mark</A></TD><TD><A HREF="oleo.html#SEC19">1.7 Using the mouse</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX72">mouse-mark-and-goto</A></TD><TD><A HREF="oleo.html#SEC19">1.7 Using the mouse</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX149">move-region</A></TD><TD><A HREF="oleo.html#SEC36">3.2 Moving Cells and Regions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_n">N</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX143">next-edit</A></TD><TD><A HREF="oleo.html#SEC33">2.4 Moving to the next input cell while editing</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX144">next-edit-set</A></TD><TD><A HREF="oleo.html#SEC33">2.4 Moving to the next input cell while editing</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_o">O</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX208">other-window</A></TD><TD><A HREF="oleo.html#SEC54">5.3 Using Other Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX211">other-window</A></TD><TD><A HREF="oleo.html#SEC54">5.3 Using Other Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX212">other-window</A></TD><TD><A HREF="oleo.html#SEC54">5.3 Using Other Windows</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_p">P</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX258">print-region</A></TD><TD><A HREF="oleo.html#SEC61">7.1 Writing ASCII and Postscript Files</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX260">psprint-region</A></TD><TD><A HREF="oleo.html#SEC61">7.1 Writing ASCII and Postscript Files</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_r">R</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX24">recalculate</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX27">right-cell</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_s">S</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX272">save-last-kbd-macro</A></TD><TD><A HREF="oleo.html#SEC73">8.3 Naming and Saving Keyboard Macros</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX99">save-spreadsheet</A></TD><TD><A HREF="oleo.html#SEC22">1.10 Saving and Reading Spreadsheets</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX38">scan-down</A></TD><TD><A HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX40">scan-left</A></TD><TD><A HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX39">scan-right</A></TD><TD><A HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX37">scan-up</A></TD><TD><A HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX63">scroll-down</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX60">scroll-downleft</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX59">scroll-downright</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX65">scroll-left</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX209">scroll-other-window</A></TD><TD><A HREF="oleo.html#SEC54">5.3 Using Other Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX214">scroll-other-window</A></TD><TD><A HREF="oleo.html#SEC54">5.3 Using Other Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX215">scroll-other-window</A></TD><TD><A HREF="oleo.html#SEC54">5.3 Using Other Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX64">scroll-right</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX61">scroll-up</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX62">scroll-up</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX57">scroll-upleft</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX58">scroll-upright</A></TD><TD><A HREF="oleo.html#SEC18">1.6.5 Moving by screens</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX105">set-cell</A></TD><TD><A HREF="oleo.html#SEC31">2.2 Entering values in a cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX162">set-cell-alignment</A></TD><TD><A HREF="oleo.html#SEC40">4.1 Alignment</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX192">set-cell-font</A></TD><TD><A HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX168">set-cell-format</A></TD><TD><A HREF="oleo.html#SEC41">4.2 Formats for numbers</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX174">set-cell-height</A></TD><TD><A HREF="oleo.html#SEC46">4.3 Changing the height of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX186">set-cell-protection</A></TD><TD><A HREF="oleo.html#SEC49">4.6 Protection</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX106">set-cell-region</A></TD><TD><A HREF="oleo.html#SEC31">2.2 Entering values in a cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX180">set-cell-width</A></TD><TD><A HREF="oleo.html#SEC47">4.4 Changing the width of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX164">set-default-alignment</A></TD><TD><A HREF="oleo.html#SEC40">4.1 Alignment</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX194">set-default-font</A></TD><TD><A HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX170">set-default-format</A></TD><TD><A HREF="oleo.html#SEC41">4.2 Formats for numbers</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX176">set-default-height</A></TD><TD><A HREF="oleo.html#SEC46">4.3 Changing the height of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX195">set-default-point-size</A></TD><TD><A HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX188">set-default-protection</A></TD><TD><A HREF="oleo.html#SEC49">4.6 Protection</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX261">set-default-ps-font</A></TD><TD><A HREF="oleo.html#SEC61">7.1 Writing ASCII and Postscript Files</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX182">set-default-width</A></TD><TD><A HREF="oleo.html#SEC47">4.4 Changing the width of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX5">set-option</A></TD><TD><A HREF="oleo.html#SEC3">1.2 Cell Referencing</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX262">set-page-size</A></TD><TD><A HREF="oleo.html#SEC61">7.1 Writing ASCII and Postscript Files</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX163">set-region-alignment</A></TD><TD><A HREF="oleo.html#SEC40">4.1 Alignment</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX193">set-region-font</A></TD><TD><A HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX169">set-region-format</A></TD><TD><A HREF="oleo.html#SEC41">4.2 Formats for numbers</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX175">set-region-height</A></TD><TD><A HREF="oleo.html#SEC46">4.3 Changing the height of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX187">set-region-protection</A></TD><TD><A HREF="oleo.html#SEC49">4.6 Protection</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX181">set-region-width</A></TD><TD><A HREF="oleo.html#SEC47">4.4 Changing the width of cells</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX73">set-variable</A></TD><TD><A HREF="oleo.html#SEC20">1.8 Regions and Variables</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX92">show-all-variables</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX94">show-options</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX90">show-variable</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX201">split-window-horizontally</A></TD><TD><A HREF="oleo.html#SEC53">5.2 Splitting Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX206">split-window-horizontally</A></TD><TD><A HREF="oleo.html#SEC53">5.2 Splitting Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX207">split-window-horizontally</A></TD><TD><A HREF="oleo.html#SEC53">5.2 Splitting Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX200">split-window-vertically</A></TD><TD><A HREF="oleo.html#SEC53">5.2 Splitting Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX203">split-window-vertically</A></TD><TD><A HREF="oleo.html#SEC53">5.2 Splitting Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX204">split-window-vertically</A></TD><TD><A HREF="oleo.html#SEC53">5.2 Splitting Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX268">start-kbd-macro</A></TD><TD><A HREF="oleo.html#SEC72">8.2 Basic Use</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX1">suspend-oleo</A></TD><TD><A HREF="oleo.html#SEC1">1. Basics</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_t">T</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX102">toggle-load-hooks</A></TD><TD><A HREF="oleo.html#SEC22">1.10 Saving and Reading Spreadsheets</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX140">toggle-overwrite</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_u">U</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX274">unbind-key</A></TD><TD><A HREF="oleo.html#SEC79">10. Keymaps and defining keys</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX25">up-cell</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX33">upleft-cell</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX45">upper-left</A></TD><TD><A HREF="oleo.html#SEC16">1.6.3 Moving long distances</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX34">upright-cell</A></TD><TD><A HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_v">V</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX96">view-wallchart</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX100">visit-spreadsheet</A></TD><TD><A HREF="oleo.html#SEC22">1.10 Saving and Reading Spreadsheets</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cmindex_w">W</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX88">where-is</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX277">write-keys</A></TD><TD><A HREF="oleo.html#SEC79">10. Keymaps and defining keys</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX98">write-wallchart</A></TD><TD><A HREF="oleo.html#SEC21">1.9 Getting Help</A></TD></TR>
</TABLE>
<P>

<HR SIZE="6">
<A NAME="SEC112"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC111"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC113"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC111"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC113"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 18. Function Index </H1>
<!--docid::SEC112::-->
<H3>Jump to:</H3>
<BR>
<A HREF="#findex_a">A</A>
 &nbsp; 
<A HREF="#findex_b">B</A>
 &nbsp; 
<A HREF="#findex_c">C</A>
 &nbsp; 
<A HREF="#findex_d">D</A>
 &nbsp; 
<A HREF="#findex_e">E</A>
 &nbsp; 
<A HREF="#findex_f">F</A>
 &nbsp; 
<A HREF="#findex_g">G</A>
 &nbsp; 
<A HREF="#findex_h">H</A>
 &nbsp; 
<A HREF="#findex_i">I</A>
 &nbsp; 
<A HREF="#findex_k">K</A>
 &nbsp; 
<A HREF="#findex_l">L</A>
 &nbsp; 
<A HREF="#findex_m">M</A>
 &nbsp; 
<A HREF="#findex_n">N</A>
 &nbsp; 
<A HREF="#findex_o">O</A>
 &nbsp; 
<A HREF="#findex_p">P</A>
 &nbsp; 
<A HREF="#findex_r">R</A>
 &nbsp; 
<A HREF="#findex_s">S</A>
 &nbsp; 
<A HREF="#findex_t">T</A>
 &nbsp; 
<A HREF="#findex_v">V</A>
 &nbsp; 
<A HREF="#findex_y">Y</A>
<P></P><P></P>
<TABLE border=0>
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_a">A</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX283">abs</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX298">acos</A></TD><TD><A HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX279">and</A></TD><TD><A HREF="oleo.html#SEC81">11.1 Boolean Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX350">anrate</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX351">anterm</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX297">asin</A></TD><TD><A HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX299">atan</A></TD><TD><A HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX307">avg</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_b">B</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX352">balance</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_c">C</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX286">ceil</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX327">cell</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX322">col</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX324">cols</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX356">compbal</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX320">concat</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX295">cos</A></TD><TD><A HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX304">count</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX346">cterm</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX358">ctime</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX326">curcell</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_d">D</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX349">ddb</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX360">dhms_to_time</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX300">dtr</A></TD><TD><A HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_e">E</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX318">edit</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX289">exp</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_f">F</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX315">find</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX293">fixed</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX287">floor</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX342">fmrr</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX343">fv</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_g">G</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX385">get_date</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX378">gmt_date</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX379">gmt_hour</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX382">gmt_isdst</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX380">gmt_min</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX377">gmt_month</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX381">gmt_sec</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX384">gmt_wday</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX383">gmt_yday</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX376">gmt_year</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_h">H</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX335">hlookup</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX359">hms_to_time</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_i">I</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX278">if</A></TD><TD><A HREF="oleo.html#SEC81">11.1 Boolean Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX333">index</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX285">int</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX341">irr</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX281">iserr</A></TD><TD><A HREF="oleo.html#SEC81">11.1 Boolean Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX282">isnum</A></TD><TD><A HREF="oleo.html#SEC81">11.1 Boolean Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_k">K</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX354">kint</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX355">kprin</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_l">L</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX310">len</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX369">local_date</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX370">local_hour</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX373">local_isdst</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX371">local_min</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX368">local_month</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX372">local_sec</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX375">local_wday</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX374">local_yday</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX367">local_year</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX288">log</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX290">log10</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_m">M</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX305">max</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX328">member</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX332">memberp</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX330">members</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX317">mid</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX306">min</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX325">my</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_n">N</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX284">negate</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX357">now</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX340">npv</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_o">O</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX334">oneof</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX280">or</A></TD><TD><A HREF="oleo.html#SEC81">11.1 Boolean Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_p">P</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX353">paidint</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX331">pmember</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX338">pmt</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX386">posix_date</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX303">prod</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX339">pv</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_r">R</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX344">rate</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX319">repeat</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX292">rnd</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX321">row</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX323">rows</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX301">rtd</A></TD><TD><A HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_s">S</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX294">sin</A></TD><TD><A HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX347">sln</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX329">smember</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX291">sqrt</A></TD><TD><A HREF="oleo.html#SEC83">11.2.1 General Math Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX308">std</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX313">strcap</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX387">strftime</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX312">strlwr</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX311">strupr</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX316">substr</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX302">sum</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX348">syd</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_t">T</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX296">tan</A></TD><TD><A HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX345">term</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX361">time_to_d</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX362">time_to_h</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX363">time_to_m</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX364">time_to_s</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX314">trim</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_v">V</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX309">var</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX336">vlookup</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX337">vlookup_str</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="findex_y">Y</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX365">ymd</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX366">ymd_dst</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
</TABLE>
<P>

<HR SIZE="6">
<A NAME="SEC113"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC112"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC114"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC112"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC114"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 19. Options Index </H1>
<!--docid::SEC113::-->
<H3>Jump to:</H3>
<BR>
<A HREF="#vindex_a">A</A>
 &nbsp; 
<A HREF="#vindex_b">B</A>
 &nbsp; 
<A HREF="#vindex_e">E</A>
 &nbsp; 
<A HREF="#vindex_f">F</A>
 &nbsp; 
<A HREF="#vindex_i">I</A>
 &nbsp; 
<A HREF="#vindex_l">L</A>
 &nbsp; 
<A HREF="#vindex_n">N</A>
 &nbsp; 
<A HREF="#vindex_p">P</A>
 &nbsp; 
<A HREF="#vindex_s">S</A>
 &nbsp; 
<A HREF="#vindex_t">T</A>
 &nbsp; 
<A HREF="#vindex_u">U</A>
<P></P><P></P>
<TABLE border=0>
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_a">A</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC5">a0</A></TD><TD><A HREF="oleo.html#SEC5">1.2.2 a0 Mode</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX222">a0</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX21">auto</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX244">auto</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_b">B</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX16">background</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX247">background</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX250">backup</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX19">bkgrnd</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX246">bkgrnd</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX252">bkup_copy</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_e">E</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX226">edges</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_f">F</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX256">file (format-name)</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_i">I</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX225">input (number)</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_l">L</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX237">link (wnum)</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX230">list</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX257">load (file-name)</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX240">lockh</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX242">lockv</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_n">N</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC4">noa0</A></TD><TD><A HREF="oleo.html#SEC4">1.2.1 noa0 Mode</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX223">noa0</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX22">noauto</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX245">noauto</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX17">nobackground</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX249">nobackground</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX251">nobackup</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX18">nobkgrnd</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX248">nobkgrnd</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX253">nobkup_copy</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX227">noedges</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX238">nolink</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX241">nolockh</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX243">nolockv</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX232">nopage</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX234">nopageh</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX236">nopageh</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX229">nostandout</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_p">P</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX231">page</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX233">pageh</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX235">pagev</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX255">print (number)</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_s">S</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX228">standout</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX224">status (number)</A></TD><TD><A HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_t">T</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX20">ticks</A></TD><TD><A HREF="oleo.html#SEC12">1.5 How updating works</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX254">ticks (number)</A></TD><TD><A HREF="oleo.html#SEC59">6.3 Other Options</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vindex_u">U</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX239">unlink</A></TD><TD><A HREF="oleo.html#SEC58">6.2 Options for the active window</A></TD></TR>
</TABLE>
<P>

<HR SIZE="6">
<A NAME="SEC114"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC113"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC113"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 20. Concept Index </H1>
<!--docid::SEC114::-->
<H3>Jump to:</H3>
<A HREF="#cindex_.">.</A>
 &nbsp; 
<BR>
<A HREF="#cindex_a">A</A>
 &nbsp; 
<A HREF="#cindex_b">B</A>
 &nbsp; 
<A HREF="#cindex_c">C</A>
 &nbsp; 
<A HREF="#cindex_d">D</A>
 &nbsp; 
<A HREF="#cindex_e">E</A>
 &nbsp; 
<A HREF="#cindex_f">F</A>
 &nbsp; 
<A HREF="#cindex_g">G</A>
 &nbsp; 
<A HREF="#cindex_i">I</A>
 &nbsp; 
<A HREF="#cindex_k">K</A>
 &nbsp; 
<A HREF="#cindex_m">M</A>
 &nbsp; 
<A HREF="#cindex_n">N</A>
 &nbsp; 
<A HREF="#cindex_o">O</A>
 &nbsp; 
<A HREF="#cindex_r">R</A>
 &nbsp; 
<A HREF="#cindex_s">S</A>
 &nbsp; 
<A HREF="#cindex_t">T</A>
 &nbsp; 
<A HREF="#cindex_w">W</A>
<P></P><P></P>
<TABLE border=0>
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_.">.</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC24">.oleorc</A></TD><TD><A HREF="oleo.html#SEC24">1.12 The <TT>`.oleorc'</TT> file</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_a">A</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC5">a0 mode</A></TD><TD><A HREF="oleo.html#SEC5">1.2.2 a0 Mode</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX3">Absolute references</A></TD><TD><A HREF="oleo.html#SEC3">1.2 Cell Referencing</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC3">Addressing cells</A></TD><TD><A HREF="oleo.html#SEC3">1.2 Cell Referencing</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_b">B</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC81">Boolean functions</A></TD><TD><A HREF="oleo.html#SEC81">11.1 Boolean Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX104">Boolean values</A></TD><TD><A HREF="oleo.html#SEC30">2.1 The different values in Oleo</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC89">Business functions</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_c">C</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC87">Cells, information about</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC23">Command Line Options</A></TD><TD><A HREF="oleo.html#SEC23">1.11 Command Line Options</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_d">D</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC90">Date and time functions</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX263">Defining keyboard macros</A></TD><TD><A HREF="oleo.html#SEC71">8.1 Keyboard Macros</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_e">E</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC28">Error values</A></TD><TD><A HREF="oleo.html#SEC28">1.13.3 Error Values</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC25">Expressions</A></TD><TD><A HREF="oleo.html#SEC25">1.13 Expressions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX388">Extending</A></TD><TD><A HREF="oleo.html#SEC91">11.8 GSL Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_f">F</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC80">Functions</A></TD><TD><A HREF="oleo.html#SEC80">11. Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC89">Functions, business</A></TD><TD><A HREF="oleo.html#SEC89">11.6 Business Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC90">Functions, date and time</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC82">Functions, math</A></TD><TD><A HREF="oleo.html#SEC82">11.2 Elementary mathematical functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC85">Functions, statistical</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC86">Functions, string manipulation</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC87">Functions, structural</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_g">G</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC91">GNU Scientific Library</A></TD><TD><A HREF="oleo.html#SEC91">11.8 GSL Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC91">GSL functions</A></TD><TD><A HREF="oleo.html#SEC91">11.8 GSL Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_i">I</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC26">Infix expressions</A></TD><TD><A HREF="oleo.html#SEC26">1.13.1 Infix Expressions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC87">Information about a cell</A></TD><TD><A HREF="oleo.html#SEC87">11.4 Structural Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX142">Input Defaults</A></TD><TD><A HREF="oleo.html#SEC32">2.3 Editing in the input line</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_k">K</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX264">Keyboard macro</A></TD><TD><A HREF="oleo.html#SEC71">8.1 Keyboard Macros</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_m">M</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC82">Math functions</A></TD><TD><A HREF="oleo.html#SEC82">11.2 Elementary mathematical functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC51">Multiple windows in Oleo</A></TD><TD><A HREF="oleo.html#SEC51">5. Multiple Windows</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_n">N</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC4">noa0 mode</A></TD><TD><A HREF="oleo.html#SEC4">1.2.1 noa0 Mode</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_o">O</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC56">Options</A></TD><TD><A HREF="oleo.html#SEC56">6. Options</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_r">R</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC3">Ranges</A></TD><TD><A HREF="oleo.html#SEC3">1.2 Cell Referencing</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC3">Referencing cells</A></TD><TD><A HREF="oleo.html#SEC3">1.2 Cell Referencing</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX4">Relative references</A></TD><TD><A HREF="oleo.html#SEC3">1.2 Cell Referencing</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_s">S</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX271">Saving keyboard macros</A></TD><TD><A HREF="oleo.html#SEC73">8.3 Naming and Saving Keyboard Macros</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC91">Scientific functions (GSL)</A></TD><TD><A HREF="oleo.html#SEC91">11.8 GSL Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC88">Searching a range of cells</A></TD><TD><A HREF="oleo.html#SEC88">11.5 Search Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX199">Selected window</A></TD><TD><A HREF="oleo.html#SEC52">5.1 Concepts of Oleo Windows</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC85">Statistical functions</A></TD><TD><A HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC86">String functions</A></TD><TD><A HREF="oleo.html#SEC86">11.3 String Functions</A></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#IDX103">String values</A></TD><TD><A HREF="oleo.html#SEC30">2.1 The different values in Oleo</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_t">T</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC90">Time and date functions</A></TD><TD><A HREF="oleo.html#SEC90">11.7 Date Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cindex_w">W</A>
</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD><A HREF="oleo.html#SEC51">Windows in Oleo</A></TD><TD><A HREF="oleo.html#SEC51">5. Multiple Windows</A></TD></TR>
</TABLE>
<P>

<HR SIZE="6">
<A NAME="oleo.html"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Footnotes</H1>
<H3><A NAME="FOOT1" HREF="oleo.html#DOCF1">(1)</A></H3>
<P>better than the high priced
spread
<H3><A NAME="FOOT2" HREF="oleo.html#DOCF2">(2)</A></H3>
<P>Note that the current range is given as upper-left corner to
lower-right corner, even if the mark is to the lower <EM>left</EM> of the
cursor (or vice versa).  This is confusing.
<H3><A NAME="FOOT3" HREF="oleo.html#DOCF3">(3)</A></H3>
<P>the doc doesn't seem to agree with the behavior; what is
the intended behavior?  the repeat counts seem to be ignored.
<H3><A NAME="FOOT4" HREF="oleo.html#DOCF4">(4)</A></H3>
<P>This is always cell <CODE>A1</CODE> in
the current version, but supposedly might change in the future.
<H3><A NAME="FOOT5" HREF="oleo.html#DOCF5">(5)</A></H3>
<P>why -1?
<H3><A NAME="FOOT6" HREF="oleo.html#DOCF6">(6)</A></H3>
<P>should these be changed - emacs uses 1 for 0, 2 for 1, and 3
for 2
<H3><A NAME="FOOT7" HREF="oleo.html#DOCF7">(7)</A></H3>
<P>where is info on file formats?
<H3><A NAME="FOOT8" HREF="oleo.html#DOCF8">(8)</A></H3>
<P>what is the default
<H3><A NAME="FOOT9" HREF="oleo.html#DOCF9">(9)</A></H3>
<P>But what does this really do?
<H3><A NAME="FOOT10" HREF="oleo.html#DOCF10">(10)</A></H3>
<P>what else can go here? can I set the default
font here?
<H3><A NAME="FOOT11" HREF="oleo.html#DOCF11">(11)</A></H3>
<P>This will be improved in the future.
<H3><A NAME="FOOT12" HREF="oleo.html#DOCF12">(12)</A></H3>
<P>This can be subtle -
some good examples are needed
<H3><A NAME="FOOT13" HREF="oleo.html#DOCF13">(13)</A></H3>
<P>is this
fixed?
<H3><A NAME="FOOT14" HREF="oleo.html#DOCF14">(14)</A></H3>
<P>this does not appear to be implemented
<H3><A NAME="FOOT15" HREF="oleo.html#DOCF15">(15)</A></H3>
<P>Should the set-user-format command check its
input for validity?
<H3><A NAME="FOOT16" HREF="oleo.html#DOCF16">(16)</A></H3>
<P>what is the unit of height
<H3><A NAME="FOOT17" HREF="oleo.html#DOCF17">(17)</A></H3>
<P>is it?
<H3><A NAME="FOOT18" HREF="oleo.html#DOCF18">(18)</A></H3>
<P>example? it it <SAMP>`M-x set-option list ","'</SAMP>?
<H3><A NAME="FOOT19" HREF="oleo.html#DOCF19">(19)</A></H3>
<P>is it?
<H3><A NAME="FOOT20" HREF="oleo.html#DOCF20">(20)</A></H3>
<P>I don't understand this
<H3><A NAME="FOOT21" HREF="oleo.html#DOCF21">(21)</A></H3>
<P>nor do I understand this one
<H3><A NAME="FOOT22" HREF="oleo.html#DOCF22">(22)</A></H3>
<P>actually, this does
not print correctly - ghostscript gives an error
<H3><A NAME="FOOT23" HREF="oleo.html#DOCF23">(23)</A></H3>
<P>I don't understand them
<H3><A NAME="FOOT24" HREF="oleo.html#DOCF24">(24)</A></H3>
<P>what?
<H3><A NAME="FOOT25" HREF="oleo.html#DOCF25">(25)</A></H3>
<P>example?
<H3><A NAME="FOOT26" HREF="oleo.html#DOCF26">(26)</A></H3>
<P>gnuplot has 9 styles; should these be added?
<H3><A NAME="FOOT27" HREF="oleo.html#DOCF27">(27)</A></H3>
<P>this is
not a good choice
<H3><A NAME="FOOT28" HREF="oleo.html#DOCF28">(28)</A></H3>
<P>does repeat count work?
<H3><A NAME="FOOT29" HREF="oleo.html#DOCF29">(29)</A></H3>
<P>does it - it should
<H3><A NAME="FOOT30" HREF="oleo.html#DOCF30">(30)</A></H3>
<P>is this correct?
<H3><A NAME="FOOT31" HREF="oleo.html#DOCF31">(31)</A></H3>
<P>isn't this C-x =?
<H3><A NAME="FOOT32" HREF="oleo.html#DOCF32">(32)</A></H3>
<P>yes it's trivial - how about something complex!
<H3><A NAME="FOOT33" HREF="oleo.html#DOCF33">(33)</A></H3>
<P>how do I make a reference to a cell?
<H3><A NAME="FOOT34" HREF="oleo.html#DOCF34">(34)</A></H3>
<P>Actually, due to a bug in version 1.5 <VAR>str1</VAR> is
searched for in <VAR>str2</VAR>.
<H3><A NAME="FOOT35" HREF="oleo.html#DOCF35">(35)</A></H3>
<P>In version 1.5 this function counts
indices from 0 instead of 1 as with other string functions; this is
probably a bug.
<H3><A NAME="FOOT36" HREF="oleo.html#DOCF36">(36)</A></H3>
<P>An empty cell is a cell with no value; a cell with an
empty <EM>string</EM> value (<CODE>""</CODE>) would match anyway, since an empty
string is a substring of an empty string.
<HR SIZE=1>
<A NAME="SEC_Contents"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Table of Contents</H1>
<UL>
<LI><A NAME="TOC1" HREF="oleo.html#SEC1">1. Basics</A>
</LI><UL>
<LI><A NAME="TOC2" HREF="oleo.html#SEC2">1.1 How to type commands</A>
</LI><LI><A NAME="TOC3" HREF="oleo.html#SEC3">1.2 Cell Referencing</A>
</LI><UL>
<LI><A NAME="TOC4" HREF="oleo.html#SEC4">1.2.1 noa0 Mode</A>
</LI><LI><A NAME="TOC5" HREF="oleo.html#SEC5">1.2.2 a0 Mode</A>
</LI><LI><A NAME="TOC6" HREF="oleo.html#SEC6">1.2.3 Comparison</A>
</LI></UL>
<LI><A NAME="TOC7" HREF="oleo.html#SEC7">1.3 The Screen</A>
</LI><UL>
<LI><A NAME="TOC8" HREF="oleo.html#SEC8">1.3.1 The input line</A>
</LI><LI><A NAME="TOC9" HREF="oleo.html#SEC9">1.3.2 The status line</A>
</LI><LI><A NAME="TOC10" HREF="oleo.html#SEC10">1.3.3 The work area and its borders</A>
</LI></UL>
<LI><A NAME="TOC11" HREF="oleo.html#SEC11">1.4 The cell cursor and the mark</A>
</LI><LI><A NAME="TOC12" HREF="oleo.html#SEC12">1.5 How updating works</A>
</LI><LI><A NAME="TOC13" HREF="oleo.html#SEC13">1.6 Moving around the spreadsheet</A>
</LI><UL>
<LI><A NAME="TOC14" HREF="oleo.html#SEC14">1.6.1 Moving to a neighboring cell</A>
</LI><LI><A NAME="TOC15" HREF="oleo.html#SEC15">1.6.2 Finding the next empty cell</A>
</LI><LI><A NAME="TOC16" HREF="oleo.html#SEC16">1.6.3 Moving long distances</A>
</LI><LI><A NAME="TOC17" HREF="oleo.html#SEC17">1.6.4 Examples of movement commands</A>
</LI><LI><A NAME="TOC18" HREF="oleo.html#SEC18">1.6.5 Moving by screens</A>
</LI></UL>
<LI><A NAME="TOC19" HREF="oleo.html#SEC19">1.7 Using the mouse</A>
</LI><LI><A NAME="TOC20" HREF="oleo.html#SEC20">1.8 Regions and Variables</A>
</LI><LI><A NAME="TOC21" HREF="oleo.html#SEC21">1.9 Getting Help</A>
</LI><LI><A NAME="TOC22" HREF="oleo.html#SEC22">1.10 Saving and Reading Spreadsheets</A>
</LI><LI><A NAME="TOC23" HREF="oleo.html#SEC23">1.11 Command Line Options</A>
</LI><LI><A NAME="TOC24" HREF="oleo.html#SEC24">1.12 The <TT>`.oleorc'</TT> file</A>
</LI><LI><A NAME="TOC25" HREF="oleo.html#SEC25">1.13 Expressions</A>
</LI><UL>
<LI><A NAME="TOC26" HREF="oleo.html#SEC26">1.13.1 Infix Expressions</A>
</LI><LI><A NAME="TOC27" HREF="oleo.html#SEC27">1.13.2 Examples</A>
</LI><LI><A NAME="TOC28" HREF="oleo.html#SEC28">1.13.3 Error Values</A>
</LI></UL>
</UL>
<LI><A NAME="TOC29" HREF="oleo.html#SEC29">2. Entering Data</A>
</LI><UL>
<LI><A NAME="TOC30" HREF="oleo.html#SEC30">2.1 The different values in Oleo</A>
</LI><LI><A NAME="TOC31" HREF="oleo.html#SEC31">2.2 Entering values in a cell</A>
</LI><LI><A NAME="TOC32" HREF="oleo.html#SEC32">2.3 Editing in the input line</A>
</LI><LI><A NAME="TOC33" HREF="oleo.html#SEC33">2.4 Moving to the next input cell while editing</A>
</LI></UL>
<LI><A NAME="TOC34" HREF="oleo.html#SEC34">3. Making Changes</A>
</LI><UL>
<LI><A NAME="TOC35" HREF="oleo.html#SEC35">3.1 Copying</A>
</LI><LI><A NAME="TOC36" HREF="oleo.html#SEC36">3.2 Moving Cells and Regions</A>
</LI><LI><A NAME="TOC37" HREF="oleo.html#SEC37">3.3 Deleting</A>
</LI><LI><A NAME="TOC38" HREF="oleo.html#SEC38">3.4 Inserting Rows and Columns</A>
</LI></UL>
<LI><A NAME="TOC39" HREF="oleo.html#SEC39">4. Style</A>
</LI><UL>
<LI><A NAME="TOC40" HREF="oleo.html#SEC40">4.1 Alignment</A>
</LI><LI><A NAME="TOC41" HREF="oleo.html#SEC41">4.2 Formats for numbers</A>
</LI><UL>
<LI><A NAME="TOC42" HREF="oleo.html#SEC42">4.2.1 Simple Formats</A>
</LI><LI><A NAME="TOC43" HREF="oleo.html#SEC43">4.2.2 General Formats</A>
</LI><LI><A NAME="TOC44" HREF="oleo.html#SEC44">4.2.3 StyleExamples</A>
</LI><LI><A NAME="TOC45" HREF="oleo.html#SEC45">4.2.4 User Defined Formats</A>
</LI></UL>
<LI><A NAME="TOC46" HREF="oleo.html#SEC46">4.3 Changing the height of cells</A>
</LI><LI><A NAME="TOC47" HREF="oleo.html#SEC47">4.4 Changing the width of cells</A>
</LI><LI><A NAME="TOC48" HREF="oleo.html#SEC48">4.5 Creating Hidden Rows and Columns</A>
</LI><LI><A NAME="TOC49" HREF="oleo.html#SEC49">4.6 Protection</A>
</LI><LI><A NAME="TOC50" HREF="oleo.html#SEC50">4.7 Fonts (in X11)</A>
</LI></UL>
<LI><A NAME="TOC51" HREF="oleo.html#SEC51">5. Multiple Windows</A>
</LI><UL>
<LI><A NAME="TOC52" HREF="oleo.html#SEC52">5.1 Concepts of Oleo Windows</A>
</LI><LI><A NAME="TOC53" HREF="oleo.html#SEC53">5.2 Splitting Windows</A>
</LI><LI><A NAME="TOC54" HREF="oleo.html#SEC54">5.3 Using Other Windows</A>
</LI><LI><A NAME="TOC55" HREF="oleo.html#SEC55">5.4 Deleting and Rearranging Windows</A>
</LI></UL>
<LI><A NAME="TOC56" HREF="oleo.html#SEC56">6. Options</A>
</LI><UL>
<LI><A NAME="TOC57" HREF="oleo.html#SEC57">6.1 Changing Oleo's appearance</A>
</LI><LI><A NAME="TOC58" HREF="oleo.html#SEC58">6.2 Options for the active window</A>
</LI><LI><A NAME="TOC59" HREF="oleo.html#SEC59">6.3 Other Options</A>
</LI></UL>
<LI><A NAME="TOC60" HREF="oleo.html#SEC60">7. Printing and Plotting</A>
</LI><UL>
<LI><A NAME="TOC61" HREF="oleo.html#SEC61">7.1 Writing ASCII and Postscript Files</A>
</LI><LI><A NAME="TOC62" HREF="oleo.html#SEC62">7.2 Graphing Using GNU Plotutils</A>
</LI><UL>
<LI><A NAME="TOC63" HREF="oleo.html#SEC63">7.2.1 Clearing the Plots</A>
</LI><LI><A NAME="TOC64" HREF="oleo.html#SEC64">7.2.2 Choosing a data set</A>
</LI><LI><A NAME="TOC65" HREF="oleo.html#SEC65">7.2.3 Changing the axes style</A>
</LI><LI><A NAME="TOC66" HREF="oleo.html#SEC66">7.2.4 Viewing your choices</A>
</LI><LI><A NAME="TOC67" HREF="oleo.html#SEC67">7.2.5 The Output Type</A>
</LI><LI><A NAME="TOC68" HREF="oleo.html#SEC68">7.2.6 Picking a plot style</A>
</LI><LI><A NAME="TOC69" HREF="oleo.html#SEC69">7.2.7 Naming a data set</A>
</LI></UL>
</UL>
<LI><A NAME="TOC70" HREF="oleo.html#SEC70">8. Macros</A>
</LI><UL>
<LI><A NAME="TOC71" HREF="oleo.html#SEC71">8.1 Keyboard Macros</A>
</LI><LI><A NAME="TOC72" HREF="oleo.html#SEC72">8.2 Basic Use</A>
</LI><LI><A NAME="TOC73" HREF="oleo.html#SEC73">8.3 Naming and Saving Keyboard Macros</A>
</LI></UL>
<LI><A NAME="TOC74" HREF="oleo.html#SEC74">9. Programs</A>
</LI><UL>
<LI><A NAME="TOC75" HREF="oleo.html#SEC75">9.1 Writing One Line Programs</A>
</LI><LI><A NAME="TOC76" HREF="oleo.html#SEC76">9.2 Multiple Commands in One Line</A>
</LI><LI><A NAME="TOC77" HREF="oleo.html#SEC77">9.3 Writing Programs</A>
</LI><LI><A NAME="TOC78" HREF="oleo.html#SEC78">9.4 Commands available in programs</A>
</LI></UL>
<LI><A NAME="TOC79" HREF="oleo.html#SEC79">10. Keymaps and defining keys</A>
</LI><LI><A NAME="TOC80" HREF="oleo.html#SEC80">11. Functions</A>
</LI><UL>
<LI><A NAME="TOC81" HREF="oleo.html#SEC81">11.1 Boolean Functions</A>
</LI><LI><A NAME="TOC82" HREF="oleo.html#SEC82">11.2 Elementary mathematical functions</A>
</LI><UL>
<LI><A NAME="TOC83" HREF="oleo.html#SEC83">11.2.1 General Math Functions</A>
</LI><LI><A NAME="TOC84" HREF="oleo.html#SEC84">11.2.2 Trigonometric Functions</A>
</LI><LI><A NAME="TOC85" HREF="oleo.html#SEC85">11.2.3 Statistical Functions</A>
</LI></UL>
<LI><A NAME="TOC86" HREF="oleo.html#SEC86">11.3 String Functions</A>
</LI><LI><A NAME="TOC87" HREF="oleo.html#SEC87">11.4 Structural Functions</A>
</LI><LI><A NAME="TOC88" HREF="oleo.html#SEC88">11.5 Search Functions</A>
</LI><LI><A NAME="TOC89" HREF="oleo.html#SEC89">11.6 Business Functions</A>
</LI><LI><A NAME="TOC90" HREF="oleo.html#SEC90">11.7 Date Functions</A>
</LI><LI><A NAME="TOC91" HREF="oleo.html#SEC91">11.8 GSL Functions</A>
</LI></UL>
<LI><A NAME="TOC92" HREF="oleo.html#SEC92">12. Extending the Oleo system</A>
</LI><UL>
<LI><A NAME="TOC93" HREF="oleo.html#SEC93">12.1 Adding new at Functions</A>
</LI></UL>
<LI><A NAME="TOC94" HREF="oleo.html#SEC94">13. Reporting Bugs</A>
</LI><LI><A NAME="TOC95" HREF="oleo.html#SEC95">14. A Motif Graphical User Interface for Oleo</A>
</LI><UL>
<LI><A NAME="TOC96" HREF="oleo.html#SEC96">14.1 Motif Introduction</A>
</LI><LI><A NAME="TOC97" HREF="oleo.html#SEC97">14.2 LessTif</A>
</LI><LI><A NAME="TOC98" HREF="oleo.html#SEC98">14.3 Advantages</A>
</LI><LI><A NAME="TOC99" HREF="oleo.html#SEC99">14.4 What you need</A>
</LI><LI><A NAME="TOC100" HREF="oleo.html#SEC100">14.5 Alternatives</A>
</LI><LI><A NAME="TOC101" HREF="oleo.html#SEC101">14.6 Using the mouse</A>
</LI><LI><A NAME="TOC102" HREF="oleo.html#SEC102">14.7 Using the keyboard shortcuts</A>
</LI><LI><A NAME="TOC103" HREF="oleo.html#SEC103">14.8 Using Help</A>
</LI><LI><A NAME="TOC104" HREF="oleo.html#SEC104">14.9 Fallback</A>
</LI><LI><A NAME="TOC105" HREF="oleo.html#SEC105">14.10 Motif Buttons in a Spreadsheet Cell</A>
</LI></UL>
<LI><A NAME="TOC106" HREF="oleo.html#SEC106">15. Accessing Databases</A>
</LI><UL>
<LI><A NAME="TOC107" HREF="oleo.html#SEC107">15.1 Database Access Introduction</A>
</LI><LI><A NAME="TOC108" HREF="oleo.html#SEC108">15.2 MySQL</A>
</LI><LI><A NAME="TOC109" HREF="oleo.html#SEC109">15.3 Xbase</A>
</LI></UL>
<LI><A NAME="TOC110" HREF="oleo.html#SEC110">16. Key Index</A>
</LI><LI><A NAME="TOC111" HREF="oleo.html#SEC111">17. Command Index</A>
</LI><LI><A NAME="TOC112" HREF="oleo.html#SEC112">18. Function Index</A>
</LI><LI><A NAME="TOC113" HREF="oleo.html#SEC113">19. Options Index</A>
</LI><LI><A NAME="TOC114" HREF="oleo.html#SEC114">20. Concept Index</A>
</LI></UL>
<HR SIZE=1>
<A NAME="SEC_OVERVIEW"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Short Table of Contents</H1>
<A NAME="TOC1" HREF="oleo.html#SEC1">1. Basics</A>
<BR>
<A NAME="TOC29" HREF="oleo.html#SEC29">2. Entering Data</A>
<BR>
<A NAME="TOC34" HREF="oleo.html#SEC34">3. Making Changes</A>
<BR>
<A NAME="TOC39" HREF="oleo.html#SEC39">4. Style</A>
<BR>
<A NAME="TOC51" HREF="oleo.html#SEC51">5. Multiple Windows</A>
<BR>
<A NAME="TOC56" HREF="oleo.html#SEC56">6. Options</A>
<BR>
<A NAME="TOC60" HREF="oleo.html#SEC60">7. Printing and Plotting</A>
<BR>
<A NAME="TOC70" HREF="oleo.html#SEC70">8. Macros</A>
<BR>
<A NAME="TOC74" HREF="oleo.html#SEC74">9. Programs</A>
<BR>
<A NAME="TOC79" HREF="oleo.html#SEC79">10. Keymaps and defining keys</A>
<BR>
<A NAME="TOC80" HREF="oleo.html#SEC80">11. Functions</A>
<BR>
<A NAME="TOC92" HREF="oleo.html#SEC92">12. Extending the Oleo system</A>
<BR>
<A NAME="TOC94" HREF="oleo.html#SEC94">13. Reporting Bugs</A>
<BR>
<A NAME="TOC95" HREF="oleo.html#SEC95">14. A Motif Graphical User Interface for Oleo</A>
<BR>
<A NAME="TOC106" HREF="oleo.html#SEC106">15. Accessing Databases</A>
<BR>
<A NAME="TOC110" HREF="oleo.html#SEC110">16. Key Index</A>
<BR>
<A NAME="TOC111" HREF="oleo.html#SEC111">17. Command Index</A>
<BR>
<A NAME="TOC112" HREF="oleo.html#SEC112">18. Function Index</A>
<BR>
<A NAME="TOC113" HREF="oleo.html#SEC113">19. Options Index</A>
<BR>
<A NAME="TOC114" HREF="oleo.html#SEC114">20. Concept Index</A>
<BR>
<HR SIZE=1>
<A NAME="SEC_About"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_Contents">Contents</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="oleo.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
This document was generated on <I>July, 29  2001</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>  
The buttons in the navigation panels have the following meaning:
<P></P>
<table border = "1">
<TR>
<TH> Button </TH>
<TH> Name </TH>
<TH> Go to </TH>
<TH> From 1.2.3 go to</TH>
</TR>
<TR>
<TD ALIGN="CENTER">
 [ &lt; ] </TD>
<TD ALIGN="CENTER">
Back
</TD>
<TD>
previous section in reading order
</TD>
<TD>
1.2.2
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
 [ &gt; ] </TD>
<TD ALIGN="CENTER">
Forward
</TD>
<TD>
next section in reading order
</TD>
<TD>
1.2.4
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
 [ &lt;&lt; ] </TD>
<TD ALIGN="CENTER">
FastBack
</TD>
<TD>
previous or up-and-previous section 
</TD>
<TD>
1.1
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
 [ Up ] </TD>
<TD ALIGN="CENTER">
Up
</TD>
<TD>
up section
</TD>
<TD>
1.2
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
 [ &gt;&gt; ] </TD>
<TD ALIGN="CENTER">
FastForward
</TD>
<TD>
next or up-and-next section
</TD>
<TD>
1.3
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
 [Top] </TD>
<TD ALIGN="CENTER">
Top
</TD>
<TD>
cover (top) of document
</TD>
<TD>
 &nbsp; 
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
 [Contents] </TD>
<TD ALIGN="CENTER">
Contents
</TD>
<TD>
table of contents
</TD>
<TD>
 &nbsp; 
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
 [Index] </TD>
<TD ALIGN="CENTER">
Index
</TD>
<TD>
concept index
</TD>
<TD>
 &nbsp; 
</TD>
</TR>
<TR>
<TD ALIGN="CENTER">
 [ ? ] </TD>
<TD ALIGN="CENTER">
About
</TD>
<TD>
this page
</TD>
<TD>
 &nbsp; 
</TD>
</TR>
</TABLE>
<P></P>
where the <STRONG> Example </STRONG> assumes that the current position 
is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of 
the following structure:
<UL>
<LI> 1. Section One  </LI>
<UL>
<LI>1.1 Subsection One-One</LI>
<UL>
<LI> ... </LI>
</UL>
<LI>1.2 Subsection One-Two</LI>
<UL>
<LI>1.2.1 Subsubsection One-Two-One
</LI><LI>1.2.2 Subsubsection One-Two-Two
</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
&lt;== Current Position </STRONG>
</LI><LI>1.2.4 Subsubsection One-Two-Four
</LI></UL>
<LI>1.3 Subsection One-Three</LI>
<UL>
<LI> ... </LI>
</UL>
<LI>1.4 Subsection One-Four</LI>
</UL>
</UL>

<HR SIZE=1>
<BR>  
<FONT SIZE="-1">
This document was generated
on <I>July, 29  2001</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>

</BODY>
</HTML>