Paragraph justification for emacs using Knuth/Plass algorithm.
The lowest level interactive command is pj-justify
. It justifies
current line after the point. You must place the point at the
beginning of line and the line must have no line breaks (newlines)
inside it.
More convenient set of commands is pj-justify-paragraph
and
pj-unjustify-paragraph
. They can be called from anywhere inside
current paragraph to justify or unjustify it. Calling
pj-justify-paragraph
on an already justified paragraph will
re-justify it.
If you want to automatically re-justify paragraphs as you type, you
can use pj-auto-justify-mode
. This is however a bit rough around
the edges, so your mileage might vary.
See also: http://www.khirevich.com/latex/microtype/
Here's a youtube video of the algorithm in action: http://www.youtube.com/watch?v=10FbsTP_IRg (note that the dynamic reindentation is very inefficient at the present moment.)
Comparsions of M-q
(top) and the present implementation (bottom). Right now there's no support for hyphenation but it is a very high priority.
We can also do mixed-fonts!