June 22nd, 2005

[idea] Numeric position editing in drawing programs.

I've been working in Inkscape a fair amount recently to design some posters and make diagrams for a paper (i took this and redesigned it to get this and this). Initially Inkscape felt pretty clumsy to use, but i've been getting more comfortable with it, especially since switching to the development version, and it's becoming surprisingly pleasant. I say "surprisingly" because, sadly, i think my consistently horrific experiences with the GIMP have left me with a general distaste for all drawing programs with "that GTk look".

If you're looking for an open-source vector drawing package, give Inkscape a try. I recommend using the development version (0.42) instead of the released version (0.41) because 0.42 has some major improvements that make Inkscape a lot easier to work with. For example, in 0.41 baselines did not exist. Yep. No such thing as a baseline. If you have two bits of text, one with a descender and one without, there is absolutely nothing you can do in 0.41 to line up their baselines; you can only line up their bounding boxes. (Unless you edit the text so there are no descenders, then align the bottom edges, then edit the text back to what it was. Which is what i did. Arrrgh!!) This made using 0.41 a world of pain, and the addition of an alignment point on the baseline in 0.42 was a great relief.

Using Inkscape also got quite a bit easier once i learned that middle-drag pans the view, Ctrl-click selects an object within a group, and Alt-click selects an object under the current selection. In 0.42 working with groups is even a little easier, since double-clicking on a group now enters the group (everything you do stays in the group until you double-click outside). Also, the zoom hotkeys are very handy, once you get to know them (e.g. "3" to zoom to selection, backquote to return to last zoom).

Inkscape could really use a separate dialog (or docked panel) for managing layers, instead of trying to squeeze the whole layer management interface into a single pop-up list on the status bar; conversely, the dialog for text properties belongs in the toolbar (which is just empty when you activate the text tool!). But aside from that it's pretty decent.

When you select an object, the toolbar shows its coordinates and size, and you can edit these numbers, which is handy for positioning things precisely. But a problem that persists in both versions is that positions are measured from the bottom-left corner of the page. Nobody reads bottom-to-top. It's ridiculous. Trying to use the toolbar is a matter of constantly adding and subtracting heights and y-coordinates, which is a pointless waste of user effort. With only four fields, the left and top coordinates should be shown by default, but really the toolbar ought to provide access to at least six values: left, top, right, bottom, width, and height, with a way to lock each pair.

How about this: click on the first field label to toggle between left, right, and x-center; click on the second label to toggle between width and "complementary dimension" (right, left, x-radius respectively). The other pair works the same way for vertical coordinates, and when you edit one field the other three fields stay unchanged. Size fields should be shown in a different colour from position fields.