Inkscape rant on multi-line text

Okay, so I love Inkscape. It's a free vector-based drawing program that is almost standards compliant. Why 'almost'? Well, sadly the SVG 1.1 specification does not cover a crucial aspect of websites, art, marketing, lithography, and desktop publishing: multi-line text.

The specification bluntly states:

"SVG performs no automatic line breaking or word wrapping. To achieve the effect of multiple lines of text, use one of the following methods:

  • The author or authoring package needs to pre-compute the line breaks and use multiple ‘text’ elements (one for each line of text).
  • The author or authoring package needs to pre-compute the line breaks and use a single ‘text’ element with one or more ‘tspan’ child elements with appropriate values for attributes ‘x’, ‘y’, ‘dx’ and ‘dy’ to set new start positions for those characters which start new lines. (This approach allows user text selection across multiple lines of text -- see Text selection and clipboard operations.)
  • Express the text to be rendered in another XML namespace such as XHTML [XHTML] embedded inline within a ‘foreignObject’ element. (Note: the exact semantics of this approach are not completely defined at this time.)"
So, it's not elegant or convenient, but at least you have your options. What did Inkscape, the open source leader in the field, do? Implement a totally non-standard flowRoot approach mentioned briefly in the SVG 1.2 DRAFT, before that approach was removed altogether! In addition, it added a totally non-standard style tag called -inkscape-font-specification.

Instead of fixing the problem, they still default to flowRoot and half-heartedly suggest to anyone that complains that they should use the SVG Tiny 1.2 textArea approach.

Here's a novel about using a tspan solution as suggested by the SVG 1.1 specification above, support em line spacing, and @font-face!?!

<end of rant />


Paul Ryan said...

I just starting using Inkscape because the Gimp doesn't do text well (no underline, etc.).
So I have this big text field and I cut-n-paste, and I can't wrap it.
I'm 5 minutes in, and I feel I wasted my time installing XQuartz and Inkscape.
How's your day going?

Post a Comment

Keep it clean and professional...