Siag stands for Scheme In A Grid. It is copyrighted by
me, Ulric Eriksson, but is free for use by anybody
without paying me any money. Read the file
Copying for
more information. The latest version is
The Scheme used in Siag has a few extensions to make it more
useful in a spreadsheet. These new functions have been added:
There is no difference between functions that are intended for commands
and those that are intended for expressions. It is quite possible to
enter the function (forward-cell) into a cell, making the point move
forward every time the sheet is recalculated. It is also possible
to make the program compute the sum (+ 1 2) every time a certain key
is pressed. Not very useful (except for debugging), but possible.
How to...
Commands
File Menu
The File menu contains commands for opening and saving
documents, as well as starting new instances of Siag
and exiting running ones.
New
Opens a new empty Siag window.
Open
Asks for a file name and opens the file with that name as a
Siag document.
Save
Saves the currently open document
using the most recently used filename. If no name has been
given to the document, the name "noname" is used.
Save As
Asks for a filename and saves the currently open document
using that filename.
Print
Prints a single page using the lpr command.
Exit
Quits from Siag. If there are any changes that have not
been saved, Siag asks if they should be saved.
Edit Menu
The Edit menu contains commands for deleting, cutting and
pasting, as well as for inserting and removing lines
and columns.
Delete
Delete the contents of the current cell.
Insert Line
Insert a line into the document, shifting the rest of the document
down.
Label
Asks for a label to insert into the current cell.
Expression
Asks for an expression to insert into the current cell.
Block Menu
The block menu contains commands to manipulate the rectangular
area of the document which is called the block.
Set Mark
Moves the mark to the current cell.
Set Block
Sets the block to be the rectangular area between the mark and
the current cell.
Copy Block
Copies the contents of the block to the area to the right and
below the current cell.
Delete Block
Deletes all the cells in the block.
Format Menu
The format menu contain commands that control the appearance of the cells,
on the screen as well
as on paper.
Column Width
Sets the width in pixels of the current column.
Row Height
Sets the height in pixels of the current row.
Cell Format
Displays a dialog which allows setting a number of options for the current
cell.
Keys
Although some commands are available on the menu, it is
faster in the long run to use the keyboard to control
Siag. Here are the standard keybindings.
Concepts
Scheme
Siag uses Scheme for commands and expressions. This means that the program
can be easily extended with new functions. When Load is chosen from the
File menu, for instance, the Lisp function (load-buffer) is called.
It is thus possible to make File - Load do something completely different
by writing a new load-buffer function, perhaps adding the ability to
read other file formats.
Functions available as commands
Functions available for expressions
In addition to the ordinary Scheme syntax, these commands are available
to make life in a spreadsheet easier:
There are also bindings to a number of standard floating-point functions.
There are three ways to execute Scheme code:
A special case is the file .siagrc which is always read from the user's
home directory on startup, if it exists.
Ulric Eriksson - January 1996 - ulric@asogy.stockholm.se