Go to the first, previous, next, last section, table of contents.
- *
-
(This one is actually a change for 2.3.0). You can no longer
choose your own prefix for SM graphics calls.(2)
- *
-
You can specify a pattern to restrict the output of the LIST DEVICE command.
- *
-
You can say IMAGE CURSOR WORD WORD WORD to get intensities into a vector.
- *
-
An argument of 4 to BOX stops that axis from being drawn.
- *
-
VERSION is now implemented as a macro, printing
$version.
- *
-
The algorithm for choosing axis labels now checks that there is enough room
for the labels that is has chosen and acts accordingly.
- *
-
Searches are now by default case in-sensitive. You can still use
$case-fold-search to change this behaviour.
- *
-
You can specify
:tc=...: or :TC=...: as part of a DEVICE
command.
- *
-
You can set the maximum size of string-valued vector elements in
`options.h'.
- *
-
Removed restrictions on number of vectors in READ and PRINT commands.
- *
-
Added atof to convert string-valued vectors to arithmetic.
- *
-
LIST DEFINE | will list internal variables (such as $fx1).
- *
-
You can use READ ! to continue reading past lines that don't match what
SM expects (either the wrong number or types of columns, or a mismatch
with the format)
- *
-
There is a new format %n that returns the number of fields correctly matched
in the line being READ.
- *
-
You can now specify the minimum and maximum number of arguments that
a macro expects (but see the change notes (see section Inconsistent Changes from Version 2.3.0 to Version 2.4) for a
slight inconsistency). Note that you cannot declare macros that expect
zero -- n arguments with a
macro name nargs {...} command.
- *
-
Most of the behaviour that is influenced by values in your `.sm' file
will now look at a variable of the same name rather than the `.sm' file
directly (they are defined from `.sm' when SM is started).
- *
-
There is now support for a wider range of fonts; the changes were introduced
to support Japanese. Details in the fonts appendix
(see section `Fonts' in The SM Manual).
- *
-
Shading with a solid colour on hardware that supports area fills is now
done using the hardware support; this currently means X11 and postscript.
- *
-
The
-f command line option can now be used to name the `.sm'
file instead of specifying a full path.
- *
-
Startup files can be called `.sm' or `sm.rc'; the latter is
looked for first on non-unix machines.
- *
-
You can now specify the slant and condensation of fonts with
\slant
and \condense.
- *
-
Support for reading tables, in particular FITS binary tables.
- *
-
The WINDOW command can handle ranges of windows (e.g. WINDOW 1 4 1 2:3)
(n.b. for a while this was written as WINDOW 1 4 1 2.3).
- *
-
You can now create vectors and variables with local (actually nested) scope
with the commands DEFINE var LOCAL and SET vec LOCAL.
- *
-
PRINT now supports the integer formats 'd', 'o', and 'x'.
- *
-
Added colour to the raster devices
- *
-
Added new devices to generate pbm, ppm, and gif files.
- *
-
Added a compile-time option to use
doubles rather than floats
for vectors.
- *
-
Understand hex integers (of the form 0x...).
- *
-
The X11 driver now puts up the current cursor position when in cursor mode;
this can be disabled with the -nocurswindow flag to the DEVICE x11 command.
- *
-
SM now supports the syntax FOREACH
var name { ... } to iterate
over each element of a vector name.
- *
-
You can access the help string associated with a vector
name as
the string-valued expression HELP(name); useful in labels as $(HELP(name)).
- *
-
(This isn't really new, but it's little known). The devices tpic and gpic
can be used to generate figures that TeX can pass to dvips and xdvi.
- *
-
You can now use %o and %x formats in READ 'format' ... commands.
- *
-
You can now declare a macro
abort_handler to trap USER ABORTs.
- *
-
Added command DITHER to do Floyd-Steinberg dithering of images.
- *
-
Added expressions DO(s_expr, s_expr) and DO(s_expr, s_expr, s_expr) to
allow implicit DO loops within expressions.
- *
-
You can now extract values from images by index as well as by coordinate;
furthermore you can specify entire rows or columns (e.g. set r=image[*,0] to
read the entire first row of an image).
- *
-
You can refer to an entire image as image[*,*]
(e.g. set image[*,*] = 2*image[*,*]).
- *
-
Commands like "list device" now work even if device is overloaded.
Go to the first, previous, next, last section, table of contents.