Limitations¶
An overview of known problems, bugs and implementation limits. These are issues we are aware of. Some of them are things we have to fix in RoboFab, others are limitations that are just part of the world we have to work in.
FontLab¶
Known problems in FontLab 4.6.1
flfont.customdata, flglyph.customdata¶
There is a bug in FontLab which caused FontLab to crash shortly after Python has written something in the flfont.customdata
or flglyph.customdata
fields. RoboFab uses the customdata fields to store the font.lib
and glyph.lib
. RoboFab is just using the functionality of these fields in FontLab, there’s nothing we can do to fix it in RoboFab. The problem has been reported to the FontLab developers.
Note
FontLab Studio 5 probably has a new attribute for font and glyph objects to store arbitrary Python data. This attribute will replace the customdata attribute. At the time of the 1.1.1 release we have not tested this attribute. We expect a future release to make use of them.
Multiple Master¶
RoboFab glyphs do not offer direct access to FontLab’s Multiple Master-masters. If you need access to that data, use the glyph.naked()
method to get to the FontLab glyph object which have access.
Note
If you’re considering scripting complex interpolation systems, have a look at Superpolation.
UFO format¶
Known problems or limitations in the UFO format, RoboFab version 1.0b1 and 1.0.
Export of OT features¶
RoboFab does not automatically export the feature descriptions from FontLab to UFO. The featureLib.py
offers some tools to export the feature text to the font.lib
and import them from the lib as well, but this needs to be called separately after reading and before writing the UFO. Or export all features to a separate .fea
file.
Macroman encoded XML files from UFO Exporter in RoboFog¶
Not a problem, but just something to be aware of: UFO files exported from the UFO Exporter scripts in RoboFog are text files with macroman text encoding. The XML files identify the encoding as such and XML interpreters seem to respect and understand this. UFO files exported written by the UFO writers in RoboFab use UTF-8 as default encoding for the XML text. The macroman export is necessary because encodings are not supported in Python 1.5.2.
Objects¶
Known problems with Objects.
GlypMath on Contour, Segment, Point in FontLab¶
Contour
, Segment
, Point
and BPoint
objects in objectsFL
(the objects you get when you use RoboFab in FontLab) do not have GlyphMath operators. All GlyphMath operations in FontLab are handled by the Glyph
object and then quickly deferred to objects from objectsRF
which do know how to handle GlyphMath operations. This is not necessarily a bug, but an effect of differences between the way RoboFab objects work in FontLab and how they work in plain Python.