DTP Features
Here is a brief comparison between a few closed and open source vector graphics programs. It is a
list of features that are not so much a roadmap as things that any
self respecting desktop publishing software should have. You will note that not much
of this is currently implemented in Laidout.
THIS TABLE IS FAR FROM COMPLETE! Please send me updates, or post on the Laidout mailing list
if you see something that is not correct. You might also check out
this comparison
over on the Scribus site about import and export capabilities of Scribus, OpenOffice.org, Inkscape, GIMP, and Krita. Also
this page about vector graphics editors in Wikipedia,
this dtp comparison on Wikipedia, and also
a plain list of such software.
Please note that I have no access to InDesign, Quark, or Illustrator, so the estimation of the capabilities of those programs might be totally wrong.
They are based mostly on browsing video tutorials for them.
* Hover the mouse over a block to see what version the feature first appears in, if known, plus other relevant notes.
* If a spot is blank, its status is either not known, or the devs might be vaguely thinking about implementing it some day.
"partial" means the feature exists, but leaves much to be desired.
"planned" means actual coding has begun on it, but it is not yet functional.
"plugin" means that you can do it in the program, but you need an extra plugin.
| Infrastructure Features | Laidout | Scribus | InDesign | Quark | Inkscape | Xara | Illustrator |
| Impositioning | Yes | No1 | partial2 | No | No | No | No |
| Folding signature based impositioning | Yes | No | partial | No | No | No | No |
| Mobius strip impositioning | planned | No | No | No | No | No | No |
| impositioning involving non-rectangular pages | Yes | No | No | No | No | No | No |
| Spreading page contents over several pieces of paper, so you can print out a really big layout from your small printer | Yes | partial3 | Yes | partial | No | Yes4 | |
| Math calculations in input boxes | planned | Yes | Yes | Yes | Yes | ||
| Plugins or scripting | planned5 | Yes | Yes | Yes | Yes | ||
| Edge feathering (as seen in Xara), or equivalent blurring | Yes | Yes | Yes | ||||
| Metafont-y erase brush, aka a knockout "color" or knockout groups | |||||||
| Fill applied to stroke | Yes | ||||||
| Editable textwrap path, independent from the actual object | Yes | Yes | Yes | Yes | Yes | ||
| Editable clip path | Yes | Yes | Yes | Yes | Yes | Yes | |
| Use objects as mask (softmask in pdf speak) | Yes | No | |||||
| Color separations | Yes | Yes | |||||
| Color system capabilities flexible enough for any number of inks (think "deviceN", not just RGB, CMYK, CcMmYK, etc) | planned | Yes | |||||
| ICC color profiles | planned | Yes | Yes | Yes | |||
| Autotrace images | No | Yes | |||||
| Spread editor | Yes | partial | partial | ||||
| overprinting/trapping on per object basis | Yes | ||||||
| UCR, BG | |||||||
| Rotate whole page view on screen by arbitrary degrees, not just portrait/landscape | Yes | No | No | No | planned | No | No |
| Preflight verifier | planned | Yes | Yes | ||||
| Collect for out | planned | Yes | Yes | ||||
| Record macros, like Pagestream, Vim, or Openoffice! | planned | No | |||||
| Non-destructive Bezier patch transforms on any object | |||||||
| Arbitrary f(s,t) transforms, and f(s) or f(t) transforms for paths | |||||||
| Guides that are arbitrary paths, not just vertical and horizontal lines. | planned | No | No | No | Yes | No | No |
| Aligning groups of points, text, and/or objects to paths | |||||||
| Tablet support, stylus, eraser, mouse allowed different functions | planned | partial | |||||
| Ability to use odd control surfaces like midi controllers, a la the Gimp | planned | ||||||
| Multi-touch support, or support for the poor person's version using 2 mice and XInput2 | partial6 | ||||||
| | |||||||
| Non-text Tool Features | Laidout | Scribus | InDesign | Quark | Inkscape | Xara | Illustrator |
| Images | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Linear, and circle color gradients | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| On canvas gradient color spot editing | Yes | No | Yes | No | |||
| Patch gradients (aka mesh gradients) | Yes | Yes | No | No | Yes | No | Yes |
| Image mesh distortions | Yes | No | No | No | No | No | No |
| Lines/polygons | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Engraver fill | Yes7 | No | partial8 | plugin | |||
| Ellipses, arcs, chords | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Paths composed of different types, such as a circular arc to a bezier segment to a straight segment, and still allow specialized editing of such shapes | planned | ||||||
| Beginning/end/middle arrows and such | Yes | Yes | Yes | ||||
| Repeater tool along path | partial | Yes | |||||
| Cloning objects, optionally with link backs to original objects | Yes | partial | Yes | ||||
| | |||||||
| Text Features | Laidout | Scribus | InDesign | Quark | Inkscape | Xara | Illustrator |
| Text. Any text at all. I mean, come on! | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Text on a line | Yes | Yes | Yes | Yes | Yes | Yes | |
| Text flowed across linked boxes | Yes | Yes | Yes | Yes | Yes | Yes | |
| Manual layered color fonts (one file per layer), text editable as if it were a single font | Yes | ||||||
| Opentype color fonts | |||||||
| Opentype feature support | |||||||
| Mixed right to left, left to right | planned | Yes9 | |||||
| Vertical text | Yes | ||||||
| Text streams in separate files, comparable to images not being embedded | |||||||
| Convert Text to editable path | Yes | Yes | Yes | Yes | Yes | ||
| Math equations support | partial10 | plugin | |||||
| Story Editor | Yes | Yes | No | ||||
| Tabstops that lie on arbitrary paths, not just vertical and horizontal lines. Someday will be gone the days of rigidly defined and poorly accessed tabstops! | No | No | No | No | No | No | |
| Tables | planned | Yes | |||||
| Automatic Hyphenation and justification | Yes | Yes | |||||
| Insert sample gibberish text!! Yeah! | Yes | Yes | Yes | Yes | |||
| Numbered and unnumbered lists | |||||||
| Generated pages, for instance for tables of contents, bibliography, index | |||||||
| | |||||||
| Export | Laidout | Scribus | InDesign | Quark | Inkscape | Xara | Illustrator |
| To image | Yes | Yes | Yes | Yes | Yes | Yes | |
| EPS/Postscript | Yes | Yes | Yes | Yes | Yes | ||
| Html | Yes | No | |||||
| partial | Yes | Yes | Yes | Yes | Yes | Yes | |
| Scribus | partial | Yes | No | No | No | No | No |
| SVG/Inkscape | partial | Yes | Yes | Yes | |||
| Openoffice.org Draw | Yes | ||||||
| Passepartout | partial | No | No | No | No | No | No |
| Laidout | Yes | No | No | No | No | No | No |
| TeX/LaTeX | No | No | No | No | partial | No | No |
| | |||||||
| Importing | Laidout | Scribus | InDesign | Quark | Inkscape | Xara | Illustrator |
| Multiple images at the same time | Yes | plugin11 | Yes | partial | partial | No | No |
| EPS | Yes | Yes | Yes | ||||
| Html | partial12 | partial | |||||
| partial | Yes | ||||||
| Scribus | partial13 | Yes | |||||
| SVG/Inkscape | partial | partial | Yes | ||||
| Openoffice.org Draw | Yes | ||||||
| Passepartout | partial | No | No | No | No | No | No |
| TeX/LaTeX | partial14 | ||||||
| Laidout | Yes | No | No | No | No | No | No |
| Externally rendered formats (for instance, Scribus render frames) | planned | Yes | |||||
Lower level functions and other neat ideas from other programs, though maybe less vital:
- Auto sync keyboard shortcuts with inkscape/gimp/whatever
- Openclipart integration/scrapbook
- cntl-+/- zooms around object, neat!
- Color selector previews different shades of color with black and white text on it!!! Fab!
- The scribus color wheel is very clever, including allowing preview for various kinds of color blindness!
Notes
[1] Infrastructure Features: Impositioning:
Scribus -- No
You can use use Laidout in limited circumstances to impose Scribus documents. This is done with
a Scribus script that calls Laidout. See here for more info.
A different plugin
was being developed during Google Summer of Code 2007, but it seems to have never been
completed. Other relevant links include
making booklets
from Scribus, and
the imposition bug report,
in which there is much discussion.
Other info here
and here.
[2] Infrastructure Features: Impositioning:
InDesign -- partial
It seems the built in impositioning of InDesign is quite limited. It can do left/right booklets, and
fold out style imposing, which is simply several pages placed side by side. You need to get plugins
for more thorough imposing.
[3] Infrastructure Features: Spreading page contents over several pieces of paper, so you can print out a really big layout from your small printer:
Scribus -- partial
Scribus is set up to handle several papers right next to each other in a grid.
In the file, there are PageSet sections. You can copy that and insert new
PageSets. This allows spreading objects across many papers, but suffers from
each page having to touch each other
exactly, which leaves you with gaps if your printer cannot print to the edge
of the paper. As of 1.3.5svn, There does not appear to be a way to edit these page sets
in the gui. You have to edit the file manually.
[4] Infrastructure Features: Spreading page contents over several pieces of paper, so you can print out a really big layout from your small printer:
Illustrator -- Yes
Appears to be auto laid in a grid with one overlap value, accessed from the Print dialog.
[5] Infrastructure Features: Plugins or scripting:
Laidout -- planned
Since Version .09, there is a very rudimentary command interpreter. It can process simple
math and a few commands like Open(), Reimpose(), and Export(). Future versions will have variables,
looping, and much more access to objects.
[6] Infrastructure Features: Multi-touch support, or support for the poor person's version using 2 mice and XInput2:
Laidout -- partial
Only the object tool has this (the poor person's version) in .091. More of that sort of thing
will be built into future versions.
[7] Non-text Tool Features: Engraver fill:
Laidout -- Yes
See this, for instance
[8] Non-text Tool Features: Engraver fill:
Inkscape -- partial
There are several ways to make a series of hatchings in Inkscape. One is the nearness guide, where nearby lines are detected
and when you draw a new line, it is drawn at a certain distance away. Another way is the
Interpolate extension, which interpolates
between two different lines, creating a field like effect.
[9] Text Features: Mixed right to left, left to right:
InDesign -- Yes
Complicated history, but looks like CC supports this. Non-cc from CS4 can use the
World Ready Composer, if you can find it.
[10] Text Features: Math equations support:
Scribus -- partial
As of 1.3.5 anyway, you can render formulas in Scribus Render Frames, then copy the frame, then paste
the frame while inside a text stream, from within a text frame. Pasting while in story editor will
paste a bunch of xml data
that is used as text rather than as an image. Suffice it to say inline graphics needs a bit of work.
[11] Importing: Multiple images at the same time:
Scribus -- plugin
These
plugins allows you to dump in images potentially to multiple pages, but you are restricted to
a grid of 4, 6, or 12 images per page. If python programming doesn't scare you off, you could modify
it to be more adaptible.
[12] Importing: Html:
Scribus -- partial
Using the "Get Text" option in a text frame.
CSS not supported yet. Text is pulled from the body element, and you can use these tags:
div, a, p, br, h1, h2, h3, h4, ol, ul, li, pre, code, b, u, i, em, strong, sub, sup, del, u.
[13] Importing: Scribus:
Laidout -- partial
Scribus import works with mixed results.
As of .092, master pages and text variables are importable.
As of .091, linked text and table frames stay linked, even in tiled impositions.
The best way to use the importer is for reimposing. For this, import all data as mystery
data, and all that data (other than master pages) will be passed through on export.
If you do not import all as mystery data, please beware that images whose frames do
not match exactly with their image
boundaries are not handled correctly. This will hopefully be handled in .094.
[14] Importing: TeX/LaTeX:
Scribus -- partial
Scribus
render frames, in addition to TeX/LaTeX,
also allow importing many other formats, like gnuplot, lilypond, mathml, as long
as you have a renderer installed somewhere that can convert those things to an image format
or PDF that Scribus can import. You can edit the source text within Scribus,
then have the render frame re-render. The TeX input has a fancy symbol selector, which is convenient.

