Tidy up new publishing code.
Now supports multiple fonts and the caller can be written more naturally.