Currently there is no convenient GUI to do that, but that said you can script it. When you create a font, part of the GUI is a form to attach a script (it can be retrieved from the Meta tab once you have created a font).
Using this feature you can attach your own custom code that performs this fix up automatically. Something like the following code will work:
Code:
(function(){
// utility function because JavaScript doesn't really do the
// 'Character' primitive/object
// takes a string (first char will be converted to Character object)
var getChar= function(s) {
s = new java.lang.String(s).charAt(0);
return org.europabarbarorum.cuf.support.IOHelp.fromCode(s);
};
// utility function to supply a list of objects which we'll need
// takes a string (first char will be use), and the font-to-edit as
// parameters
var edit= function(chr, font){
chr = getChar(chr);
return {
'char' : chr, // the Character object
'dim' : font.getGlyph(chr).getDimension(),
'edits': font.getEditor().edit(chr)
};
};
// the meat of the script: generate a CallBack object which will post process the font
return org.europabarbarorum.cuf.shell.Shell.CallBack({
// this custom function will take the font and fix alignment of some characters
callback: function(font) {
// example: fix the character 'y' to align
var data = edit('y', font);
data['edits'].setY(data['dim'].getY() + 2);
// and continue: fix the 'q' character as well
data = edit('q', font);
data['edits'].setY(data['dim'].getY() + 2);
// and so on...
}
});
})()
When in doubt about what methods/objects you can work with, you can do something like this to find out:
Code:
for(var i in object) { println(i + "\n" + object[i]); }
For example you could insert the following into the callback function body:
Code:
for(var i in data['edits']) { println(i + "\n" + object[i]); }
That code will print information about the methods you can call on the object to the shell window.