Hi Felipe!
Truely, thanks for your great work on the SVG Fonts part of Inkscape.
This is coming along fast and has great potential! :-) You asked for
some ideas, and here's a small flood of them; I'll CC the
inkscape-deve list too so there is a public record. Feel free to put
any of this into the feature-tracker or whatever if its useful :-)
I just built the current SVN build, if I put down some text with the
text tool this non fatal error appears on sterr:
** (inkscape:1119): WARNING **: Family name Bitstream Vera Sans does
not have an entry in the font lister.**
And then if I select the font drop down, Inkscape aborts:
------
ERROR:xml/repr-css.cpp:52:void sp_repr_css_attr_unref(SPCSSAttr*):
assertion failed: (css != NULL)
Emergency save activated!
Emergency save document locations:
New document 1.2009_01_13_09_57_54.0.svg
Emergency save completed. Inkscape will close now.
If you can reproduce this crash, please file a bug at
www.inkscape.org
with a detailed description of the steps leading to the crash, so we can fix it.
Aborted
------
This happens even if it is the very first thing I do :-(
If I avoid doing this, and go to Text menu, SVG Fonts, I can see
easily how to make a new font, rename it "aaaa" as a ID and as a
Family Name, add a glyph, give it a Unicode character encoding by
typing one, and draw a large glyph on the canvas and click "get curves
from selection" to add it to the font.
If I then select a text box, go to Text menu, Text and Fonts, I can't
find this font in the list of fonts. :-(
So that would be the #1 feature to add :-)
Also if I make a textbox and write and select a few chars I added to
the svgfont and then some I didn't - "abczx" - and click the "Missing
Glyph: From selection" button, nothing happens.
In terms of the font UI, there its lots of things to do, but the
current features are really quite a long way there :-)
I think its very useful to look at the essential type design features
in FontForge today:
http://dave.lab6.com/acid/dump/2009/2008-01-13_inkscape_fonts.png
http://dave.lab6.com/acid/dump/2009/2008-01-13 fontforge essential
design features original.png
http://dave.lab6.com/acid/dump/2009/2008-01-13 fontforge essential
design features marked.png
In Z-reading-order:
* Tabs for different recently edited glyphs
* status information about the pointer and currently selected point,
or points, giving context such as distance between the points, angle
between the points, distance from pointer to point
* glyph palette so users can see a table of glyphs, either "compact"
to just those already in the font (as shown) or "full" which includes
table items for all the glyphs in the current encoding (Fontforge
default)
* Layers palette that has 2 layers like normal inkscape layers, Fore
and Back, and also a Guide layer that appears on all glyphs
* A second window (Like View menu, Duplicate Window) for looking at
(and easily editing) other similar glyphs while editing the current
glyph
* A 'reading text' preview, which can be varied by DPI, point size,
antialiasing toggled. Also, it should generate the preview text only
using the currently instantiated glyphs, as FontForge has implemented
with public code in its font dialog, and
http://adhesiontext.com/ also
implements.
* A 'kerning/metrics' preview, with a table of the right bearing
value, the implicit total width and left bearing values, and kerning
pair exceptions to these. The FontForge window allows spacing to be
done interactively by dragging glyphs, which is nice.
With setting metrics, you'd place the char you are spacing in the
context of n's and then o's to get a feel for its rhythm with these
common shapes. So you might start with
nonoaonon
And then try
ononanono
And then
ooooaoooo
nnnnannnn
anananana
aoaoaoaoa
* A 2nd metrics preview that is used to keep a nice large live-preview
of glyphs "blacked in" which is used similarly to the 'reading text'
view. This is the current 'preview text' area of the SVG fonts pane,
except with a white background.
Here are some suggestions about the current UI, then:
Kerning list tab: have a 3rd column listing the kerning value number,
which is editable as a number.
Glyph list tab: have a 3rd column listing the individual glyph width
(currently can't see a way to change this at all, only the global
width)
Glyph list tab: Being able to load a FontForge 'encoding names' list,
which is just a text file like this:
0x005F underscore
0x0060 grave
0x0061 a
0x0062 b
These are created via FontForge's FontView window, Encoding menu,
"Save namelist of font" item.
Glyph list tab: have ability to show Unicode values in other typical
formats, like 0xABCD.
General: Once a set of curves have been selected and 'got' associated
with a glyph, I delete them by modifying them to create the next
glyph. If I then want to go back and change an existing glyph, I can
see no way to reinstantiate it on the canvas and edit it.
Glyphs: Having visual displays as well as the lists currently in place
generally, and here a glyph palette sub-tab that is clickable instead
of a list of glyph names and Unicode values;
General: A new tab for metrics with interactive and tablular access to
the 4 metrics values, plus kerning pair values;
Preview area: Previewing its own tab, and being able to change the
size of the preview text with a slider, and a number input to specify
exact point size, and panning along the preview if the preview-string
is long.
General: When a tool palette is floated, such as the Align and
Distribute palette, it has certain sections. A+D has 'align'
'distribute' 'remove overlaps' ' connector' and 'nodes'.
It would be
nice to be able to float these individually, but I guess this is a
limit of GTK. With the SVG Font palette, there are tabs instead, and I
hope it might be possible to make these 'floatable' more easily. For
example the kerning tab quickly gets a long list of pairs, and if I'm
working just on the metrics at the moment, I don't want to clutter up
the screen with the other parts of the single huge palette at the
moment.
The "Icon Preview" code might be usefully integrated to help people
draw pixel fonts... haha
Okay I think that's enough for now, I look forward to seeing your progress! :-)
Cheers,
Dave