
What Is Sketch?
===============

Sketch is an interactive vector drawing program for X (similar to XFig
or tgif). It is written almost completely in Python, an object oriented
interpreted programming language.

This is a stable release. It is quite featureful and usable, but there
are still things missing that I want in a 1.0 release, hence the low
version number.

To compile and run Sketch, you need some additional software. Have a look
at the file INSTALL to see what you need and how to install Sketch.


NEWS:
=====

The most important changes since version 0.6.12:

 * A Multiline Text plugin object. Create it with the
   Edit->Create->Multiline Text menu item.

 * An Import filter for Acorn Draw files, updated import filters for
   SVG, WMF and Illustrator files and an updated SVG export filter.

 * The font dialog allows setting the font of multiple text objects at
   once.

 * Two new command line tools: skconvert and sk2ppm. skconverts between
   vector formats and sk2ppm converts vector files to ppm.

 * A fix for a filename quoting bug when rendering EPS files. This bug
   was a security problem.

 * Bug fixes.


These and all other user visible changes since the last and all earlier
versions are listed in the file NEWS.

For up to date information about Sketch, have a look at the Sketch web
page <http://sketch.sourceforge.net>, or contact the author
<bernhard@users.sourceforge.net>.

There's also a mailing list for all Sketch-related things. You can
subscribe to it via the web-interface at
<http://lists.sourceforge.net/mailman/listinfo/sketch-list> or by
sending a mail with the word subscribe in the subject to
<sketch-list-request@lists.sourceforge.net>

New versions of Sketch will be announced on the mailing list and some
other places like freshmeat, comp.lang.python.announce and
comp.os.linux.announce

If you want to report a bug, please have a look at the web page to check
whether a newer release is available or your bug has already been
reported. Bug reports should go to the mailing list or directly to me.



Features
========

Sketch already has the following features:

	o Drawing primitives:
		o Rectangles, with optional round corners
		o Ellipses (full ellipses, arcs, pie slices, chords)
		o Bezier curves (single and multi path)
		o External images:
			o Raster images: JPEG, GIF,...
			  (all types the Python Imaging Library can read)
			o Encapsulated PostScript (EPS)
		o Text

	o All objects, including images and text, can be rotated,
	  scaled, sheared, etc. (all affine transformations are
	  possible)

	o Primitives can usually have fill and line properties:

		o Fill properties are patterns like solid colors,
		  gradients, tiled images and hatching.

		o Line properties are currently a (solid) color, width,
		  dashes, cap and join styles and arrow heads. Patterns
		  instead of a single color are planned for the future.

	o Special Effects and Features:

		o Bezier curves, rectangles and ellipses can be used as
		  guides in addition to the standard vertical and
		  horizontal guide lines.

		o Blend Groups: Automatically updated interpolations of
		  arbitrary objects

		o Text can be converted to bezier objects. (This only
		  works if sketch has access to the PostScript Type 1
		  font files (pfa or pfb)).

		o Text along a Path

	o Export file-formats:

		o Encapsulated PostScript

		o Adobe Illustrator files

		o Scalable Vector Graphics (SVG)

	o Import file-formats:

		o XFig files (.fig) (incomplete)

		o Adobe Illustrator files (.ai)

		o Windows Meta File (WMF, Windows 3.1)

		o Corel's CMX

		o Scalable Vector Graphics (SVG)

	o Unlimited undo history

	o User scripts


Limitations
===========

The platform supported best is the one I use myself and that is Linux
2.2.x and XFree86 3.3.3 on a Pentium with a video-card capable of
displaying TrueColor visuals.

The following limitations apply:

o Currently, only TrueColor visuals with depths of 15, 16, 24 or 32 bits
  and 8-bit PseudoColor visuals are supported.

o Rotated and otherwise transformed text requires (as far as I know) at
  least X11R6. See below for more information on fonts.


License
=======

Most of Sketch is released under the GNU Library General Public License
(see the file COPYING for details). The only exceptions are the module
Pax (in the Pax directory) and the stream filters (in the Filter
directory). See the respective READMEs for details.


Problems
========

There are some problems you may run into which can be solved by changing
Sketch's configuration or the X-server's configuration.


ImportError: No module named Image
----------------------------------

This message means that the Python Imaging Library (PIL) is not
installed correctly. Follow the instrctions in the PIL README.



Font Problems
-------------


Exception TclError: font "..." doesn't exist
--------------------------------------------
If you get a message like

     Exception TclError: font "[some text with lots of hyphens]" doesn't
     exist

when browsing fonts in the font dialog, the reason is probably that
Sketch tries to use fonts that are not installed in the X-server or the
font server (if you use one). Refer to the ``User's Guide'' on how to
install fonts and configure Sketch.



Cannot load '[...]'
-------------------
When Sketch tries to display the drawing, you get messages like

     Cannot load 'MyFont-Bold':
     no such font

This can have two reasons:

1. Sketch tries to use fonts that are not installed in the X-server.
   Refer to the ``User's Guide'' on how to install fonts and configure
   Sketch.

2. Your server cannot handle transformed fonts or maybe not even scaled
   fonts. See the next section for details.



Transformed Fonts
-----------------

To rotate, shear or otherwise transform fonts, Sketch relies on the
capabilities of the server. This means, that the server has to be able
to understand X font names of the form 
	`-*-*-*-*-*--[0 0 0 0]-*-*-*-*-0-*-*'. 

The `[0 0 0 0]' stands for a matrix describing the transformation (the
zeros are replaced by the coefficients of that matrix). Not all servers
support this. To find out if a server supports this run xlsfonts(1) like
this:

     $ xlsfonts -fn '-*-*-*-*-*--[0 0 0 0]-*-*-*-*-0-*-*'

If your server supports this feature, a list of font names should be
printed. You will probably get an error message otherwise.

As far as I know, this syntax for transformed fonts was introduced in
X11R6.


