10 May 2016
Libre Graphics Meeting Recap
This year's LGM in London has come and gone. It's always
interesting to see what other projects are working on, and get a feel for how things
Thanks to everyone who came to the Laidout Engraving
workshop! A few glitches, but at least a few people were able to get Laidout running enough to play
around with. It was a lesson to me to not take things for granted, and thoroughly test the stuff
you will present, not just expect things that have worked for years to still be working!
I also presented the new text tools I've been working on, particularly the brand new text on path tool.
Just in the nick of time, I was able to make variable width stroking adjust text glyph heights. Now I
need to smooth out all the shortcuts I took making the tool, and make it work properly with the
rest of Laidout. Also in the works was color font usage. I didn't quite get my opentype svg color font
functional before LGM, and I'm still working on it. Special thanks to Hin-Tak Leung, who figured
out what was going wrong with my font (obscure unicode mapping difficulties), and also offered
many pointers on how to make Laidout's build process a little more streamlined.
18 December 2015
Laidout 0.096 Released! Wa-hoo!
The biggest change this time is finally switching to cairo for rendering,
instead of cobbling together hideous Xlib based methods.
This opens up a variety of rendering finesse, such as the ability for transparent paths, and perhaps more interestingly, a text tool.
I'm sure there are many cairo rendering related bugs hiding out around the edges of Laidout, so please let me know if and when you find them!
Here are some tutorials demonstrating the new features:
- Text caption tool
After a mere 10 years of Laidout's existence, there is now a native text tool! It is a bit of a prototype right now. Expect
major improvements as I learn to navigate the huge mass of issues surrounding encoding, rendering, and
exporting text. Currently, each text object must have the same font, color, and size. Exporting to SVG works best. Export to
PDF and Scribus is mediocre, as those suffer from text sizing issues I haven't figured out yet.
- More export arrangement options
Now there are options to export only even or odd spread numbers, as well as rotate each
by 90 degree increments or rotate every other spread by 180 degrees. Also, you can export
in reverse order.
- Engraver tool
This tool has numerous refinements, such as being able to use the different modes on many engraver objects at once.
The group stacking has more control over visibility, and groups can now more easily share style resources, like dash patterns
and tracing. Also new is a kind of random field offset applied to the auto line types like radial, circular, linear, and the
new spiral type. One bad thing about the switch to cairo is that the engraver tool is slightly less responsive. The old fast xlib
screen render does not translate to a fast cairo render, and I need to totally reprogram the previewer.
That'll have to wait for the next release.
- Spread Editor enhancements
The spread editor is now a little more flexible with page number markers. You can now easily tag pages with markers of different shapes
and colors for simple visual cues to indicate how done you are as you work on them.
- New file dialog
The File Dialog has been totally reprogrammed, and hopefully is easier to use now, with clearer access to
recent files and bookmarks, and allowing easy change to the preview window size.
When I started Laidout 10 years ago, I never really intended it to be a full featured editing environment, but as time goes on,
I wish for more such things, like having adequate object management features. Having cairo in place now is
definitely a good incentive to work more on these things.
Otherwise, I'll keep plugging away to more fully integrate net impositions to allow more unusual stacking arrangements.
The clone tiling interface also needs some attention. Finally, I want to keep
working toward some kind of tool sharing regime, to allow easy sharing of tool interfaces among different software.
This is a non-trivial task!
No matter how well any one program does something, it will never do everything someone wants. Sharing interfaces would
at least let users use their favorite interfaces, despite working on different types of data.
Read old news
What the hell?
Laidout is desktop publishing software built from the ground up with imposition in mind. Currently one may arrange
pages into various cut and folded impositions, such as a booklet, or even a dodecahedron. You can fill pages with images,
gradients (linear, radial, and mesh), mesh transformed images, engraving-like fill objects, and some basic text.
Export with varying degrees of success to Svg, Scribus, Pdf, and more.
See the Laidout Features page for more detail about what it can do now,
the Roadmap for what it's supposed to do eventually, and this
(incomplete) comparison to a few other desktop publishing and vector graphics programs.
It is in the "Mostly does what I want on my machine" stage of development.
I try to have a new "stable" release once
in awhile, at least when various other projects
don't eat all my time, which seems to happen a lot lately.
"Stable" in this context means that it is only slightly less buggy then the raw development branch.
I have been using Laidout to lay out my comics into books since 2006.
So, one out of 7 billion people agree that Laidout might actually be useful!
An example of what I use Laidout for is to make small booklets by chopping up
tabloid sized paper (11x17 inches). With a fold, two cuts, and stapling, one can make three cute
little 5.5 x 5.6 inch books.
Many more features are planned, like such non-essentials (to me anyway) as flowed text boxes. Who needs text
when a picture is worth a thousand words?
Laidout is currently built with the Laxkit, an X gui toolkit.
Laidout and the Laxkit are both rough and highly experimental. The main development
aim is to make a well documented, very modular, expandable, and configurable desktop publishing program,
with an emphasis on developing features and interfaces not commonly found in other programs, as long as they are useful.
A side project is to foster some manner of tool plugins in various other software that allows sharing of these
useful interfaces within those other software and vice versa.
Laidout only works on variations of Linux for now. It should work on Macs after a small amount of hacking,
but I don't have access to a Mac to make it so.
The current release is Version 0.096.
Really these are more like development snapshots than anything resembling stability. You can help
turn Laidout into something like stable by posting feedback on your experiences with it to the
Laidout mailing list, or dropping me a line.
In any case, you can get Laidout in source code form, or as a deb package for debian based amd 64bit systems.
With 0.096, github is now the place to go for code and release binaries. The main 0.096 download area is
laidout-0.096.tar.bz2 (the source code)
laidout_0.096_amd64.deb (binary, should work on Debian Unstable, and recent Ubuntu)
laidout-ubuntu14.04_0.096_amd64.deb (binary, should work Ubuntu 14.04 LTS)
Compiling from "stable" source
If you download the source code form, you must compile and install from the command line. First, as root or with "sudo", install dependencies:
apt-get install g++ pkg-config libpng12-dev libreadline-dev libx11-dev libxext-dev libxi-dev libxft-dev libcups2-dev libimlib2-dev libfontconfig-dev libfreetype6-dev libssl-dev xutils-dev libcairo2-dev libharfbuzz-dev libsqlite3-dev libgraphicsmagick++1-dev mesa-common-dev libglu1-mesa-dev libftgl-dev zlib1g-dev
tar xvfj laidout-0.096.tar.bz2
The second apt-get up above are the dependencies for the unstable polyhedron unwrapper.
You don't need them if you disable the opengl based unwrapper by passing --nogl to the configure line above. The unwrapper exists also in
a standalone version in laidout-0.096/src/polyptych.
Alternately, you can build a deb package from the source tar like the following. You'll need to have dpkg-dev and fakeroot packages installed.
This will create an installable deb package. If you try this and it doesn't work, please let me know. It is supposed to work!!
tar xvfj laidout-0.096.tar.bz2
Please note that as of October 10, 2015, the development source code is now hosted at github.
You can browse the git repository
or you can grab a copy from the repository with this command:
git clone https://github.com/Laidout/laidout.git
To actually compile from this git source, see the further instructions in the Compiling From Development Git section
of the README.
If you think you might like to help develop Laidout, please see this page.
You can try Laidout's issue tracker at github, or
there is a general purpose mailing list here.
Currently, the only developer is Tom Lechner,
and he has been hacking away at Laidout to help make his artwork.