CTAN has a new package: canoniclayout