SVG Fonts UI suggestions (and crash on text dropdown)
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
participants (1)
-
Dave Crossland