@copying
This file documents SES: the Simple Emacs Spreadsheet.
-Copyright @copyright{} 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 2002, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
* The Basics:: Basic spreadsheet commands
* Advanced Features:: Want to know more?
* For Gurus:: Want to know @emph{even more}?
+* Index:: Concept, Function and Variable Index
* Acknowledgements:: Acknowledgements
@end menu
@node Sales Pitch, The Basics, Top, Top
@comment node-name, next, previous, up
@chapter Sales Pitch
+@cindex features
@itemize @bullet
@item Create and edit simple spreadsheets with a minimum of fuss.
@node The Basics, Advanced Features, Sales Pitch, Top
@comment node-name, next, previous, up
@chapter The Basics
+@cindex basic commands
+@findex ses-jump
+@findex ses-mark-row
+@findex ses-mark-column
+@findex ses-mark-whole-buffer
+@findex set-mark-command
+@findex keyboard-quit
A @dfn{cell identifier} is a symbol with a column letter and a row
number. Cell B7 is the 2nd column of the 7th row. For very wide
@node Formulas, Resizing, The Basics, The Basics
@section Cell formulas
+@cindex formulas
+@cindex formulas, entering
+@findex ses-read-cell
+@findex ses-read-symbol
+@findex ses-edit-cell
+@findex ses-recalculate-cell
+@findex ses-recalculate-all
To enter a number into the current cell, just start typing:
@node Resizing, Printer functions, Formulas, The Basics
@section Resizing the spreadsheet
+@cindex resizing spreadsheets
+@findex ses-insert-row
+@findex ses-insert-column
+@findex ses-delete-row
+@findex ses-delete-column
+@findex ses-set-column-width
+@findex ses-forward-or-insert
+@findex ses-append-row-jump-first-column
+
Basic commands:
@node Printer functions, Clearing cells, Resizing, The Basics
@section Printer functions
+@cindex printer functions
+@findex ses-read-cell-printer
+@findex ses-read-column-printer
+@findex ses-read-default-printer
+@findex ses-center
+@findex ses-center-span
+@findex ses-dashfill
+@findex ses-dashfill-span
+@findex ses-tildefill-span
+
Printer functions convert binary cell values into the print forms that
Emacs will display on the screen.
@node Clearing cells, Copy/cut/paste, Printer functions, The Basics
@section Clearing cells
+@cindex clearing commands
+@findex ses-clear-cell-backward
+@findex ses-clear-cell-forward
These commands set both formula and printer to @code{nil}:
@node Copy/cut/paste, Customizing SES, Clearing cells, The Basics
@section Copy, cut, and paste
+@cindex copy
+@cindex cut
+@cindex paste
+@findex kill-ring-save
+@findex mouse-set-region
+@findex mouse-set-secondary
+@findex ses-kill-override
+@findex yank
+@findex clipboard-yank
+@findex mouse-yank-at-click
+@findex mouse-yank-at-secondary
+@findex ses-yank-pop
The copy functions work on rectangular regions of cells. You can paste the
copies into non-SES buffers to export the print text.
@node Customizing SES, , Copy/cut/paste, The Basics
@section Customizing SES
+@cindex customizing
+@vindex enable-local-eval
+@vindex ses-mode-hook
+@vindex safe-functions
+@vindex enable-local-eval
+
By default, a newly-created spreadsheet has 1 row and 1 column. The
column width is 7 and the default printer is @samp{"%.7g"}. Each of these
@node Advanced Features, For Gurus, The Basics, Top
@chapter Advanced Features
+@cindex advanced features
+@findex ses-read-header-row
+
@table @kbd
@item C-c M-C-h
@node The print area, Ranges in formulas, Advanced Features, Advanced Features
@section The print area
+@cindex print area
+@findex widen
+@findex ses-renarrow-buffer
+@findex ses-reprint-all
A SES file consists of a print area and a data area. Normally the
buffer is narrowed to show only the print area. The print area is
@node Ranges in formulas, Sorting by column, The print area, Advanced Features
@section Ranges in formulas
+@cindex ranges
+@findex ses-insert-range-click
+@findex ses-insert-range
+@findex ses-insert-ses-range-click
+@findex ses-insert-ses-range
+@vindex from
+@vindex to
A formula like
@lisp
@node Sorting by column, Standard formula functions, Ranges in formulas, Advanced Features
@section Sorting by column
+@cindex sorting
+@findex ses-sort-column
+@findex ses-sort-column-click
@table @kbd
@item C-c M-C-s
@node Standard formula functions, More on cell printing, Sorting by column, Advanced Features
@section Standard formula functions
+@cindex standard formula functions
+@cindex *skip*
+@cindex *error*
+@findex ses-delete-blanks
+@findex ses-average
+@findex ses+
Oftentimes you want a calculation to exclude the blank cells. Here
are some useful functions to call from your formulas:
@node More on cell printing, Import and export, Standard formula functions, Advanced Features
@section More on cell printing
+@cindex cell printing, more
+@findex ses-truncate-cell
+@findex ses-recalculate-cell
Special cell values:
@itemize
@node Import and export, Virus protection, More on cell printing, Advanced Features
@section Import and export
+@cindex import and export
+@cindex export, and import
+@findex ses-export-tsv
+@findex ses-export-tsf
@table @kbd
@item x t
@node Virus protection, Spreadsheets with details and summary, Import and export, Advanced Features
@section Virus protection
+@cindex virus protection
Whenever a formula or printer is read from a file or is pasted into
the spreadsheet, it receives a ``needs safety check'' marking. Later,
@node Spreadsheets with details and summary, , Virus protection, Advanced Features
@section Spreadsheets with details and summary
+@cindex details and summary
+@cindex summary, and details
A common organization for spreadsheets is to have a bunch of ``detail''
rows, each perhaps describing a transaction, and then a set of
@c ===================================================================
-@node For Gurus, Acknowledgements, Advanced Features, Top
+@node For Gurus, Index, Advanced Features, Top
@chapter For Gurus
+@cindex advanced features
@menu
* Deferred updates::
@node Deferred updates, Nonrelocatable references, For Gurus, For Gurus
@section Deferred updates
+@cindex deferred updates
+@cindex updates, deferred
+@vindex run-with-idle-timer
To save time by avoiding redundant computations, cells that need
recalculation due to changes in other cells are added to a set. At
@node Nonrelocatable references, The data area, Deferred updates, For Gurus
@section Nonrelocatable references
+@cindex nonrelocatable references
+@cindex references, nonrelocatable
@kbd{C-y} relocates all cell-references in a pasted formula, while
@kbd{C-u C-y} relocates none of the cell-references. What about mixed
@node The data area, Buffer-local variables in spreadsheets, Nonrelocatable references, For Gurus
@section The data area
+@cindex data area
+@findex ses-reconstruct-all
Begins with an 014 character, followed by sets of cell-definition
macros for each row, followed by column-widths, column-printers,
@node Buffer-local variables in spreadsheets, Uses of defadvice in SES, The data area, For Gurus
@section Buffer-local variables in spreadsheets
+@cindex buffer-local variables
+@cindex variables, buffer-local
You can add additional local variables to the list at the bottom of
the data area, such as hidden constants you want to refer to in your
@node Uses of defadvice in SES, , Buffer-local variables in spreadsheets, For Gurus
@section Uses of defadvice in SES
+@cindex defadvice
+@cindex undo-more
+@cindex copy-region-as-kill
+@cindex yank
@table @code
@item undo-more
cell.
@end table
+@c ===================================================================
+@node Index, Acknowledgements, For Gurus, Top
+@unnumbered Concept Index
+
+@printindex cp
+
+@heading Function Index
+
+@printindex fn
+
+@heading Variable Index
+
+@printindex vr
+
@c ===================================================================
-@node Acknowledgements, , For Gurus, Top
+@node Acknowledgements, , Index, Top
@chapter Acknowledgements
Coding by:
Stefan Monnier @email{monnier@@gnu.org}
@end quotation
+@noindent
+Texinfo manual by:
+@quotation
+Jonathan Yavner @email{jyavner@@member.fsf.org}@*
+Brad Collins <brad@@chenla.org>
+@end quotation
+
+@noindent
Ideas from:
@quotation
Christoph Conrad @email{christoph.conrad@@gmx.de}@*