Nicolas Goaziou writes: I'll get this right eventually... >> + (spread (plist-member attr :spread)) > > I think you mean (plist-get attr :spread), otherwise ":spread nil" will > still activate spread. Also, since it's a predicate, I suggest to name > the variable "spreadp". Me being clever again -- I misunderstood how that would work. [...] > "longtabu" gets its own cond branch, but not "tabu". I think that > defeats the purpose of the separation, which is to be able to add > support for features of this rich table environment without cluttering > the rest of the code. Doing it partially isn't worth the code > duplication it implies. > > IOW, either we separate both "tabu" and "longtabu" completely, or we > separate none of them. Your call. I've kept the separation. There was no need to duplicate all the float environment stuff, so there's not too much extra code. Thanks for all the pointers! Eric