
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.

The current version is 0.6.3. This is a stable release. It is quite
usable, I think, 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.3:

    * Bug fixes, most notably for the EPS-related bug in Sketch's
      PostScript prolog.

    * Updated Spanish translations (contributed by Esteban Manchado Velázquez)

    * More color icons (contributed by Panos Katsaloulis)

    * The mkfontdb.py script can also generate Fontmap files now
      (contributed by Jeffrey Boser)

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://www.frozenriver.nu/mailman/listinfo/sketch-list

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
<sketch@online.de>.



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 works
		  only 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 Corels 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.


Portability
-----------

The feedback I've got so far about other platforms indicates that Sketch
runs on these platforms too:

 - Linux on i386, Alpha, m68k, PowerPC and Sparc,
 - FreeBSD
 - Solaris 2.5.1, 2.6
 - IRIX64 6.4
 - AIX



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.


