This chapter is about making and using Python macros within FontLab and FontLab Studio, the Font creation tools from FontLab.



The aim is to support two learning paths:

  1. To give non-programming font designers a complete and efficient tutorial to get useful scripting work done.
  2. To give programmers, who are not font designers, an efficient tour of the APIs so they can write scripts for a font designer.

"Efficient" covers several points:

  • That all the materials needed are in one place, so the reader doesn't have to trawl for fragmented info (i.e. it's done here once for everybody)
  • That the material is presented in the appropriate sequence to achieve a given purpose. (need to collate a list of tutorial examples)
  • Compatibility between versions of FontLab, Python and OS's are given, so a working combination can be assembled in every case.
  • Application configuration (options, modes) necessary for each task are included, either for manual setup or as part of the scripting.

About the Draft Outline

  • Please add comments on goals, sequence, content and structure.
  • This contents outline is a flat text for now, so we can just throw stuff in. Items will find their place as the content shapes up.
  • When the outline has stopped morphing and is stable, a chapter hierarchy will be created out of it (e.g. FontLab/Scripting/sub-chaptername/sub-sub-chaptername). The tree will be stable when any new page you can think of has a natural and obvious place in the hierarchy.
  • Place comments in italics to distinguish them from actual content.
  • Bullets are used instead of numbered points to make structure shuffling easy.

Wikibook Development Stages
Sparse text   Developing text   Maturing text   Developed text   Comprehensive text  

Outline Contents


Categorization note


Suggest this goes in the Computer Software/Software Guides/ bookshelf as it is about scripting within a specific application. The scripting language used is Python, so arguably it is a sub-specialization of Python, but against that is the fact that Python is being used to call the application-specific font APIs in FontLab and RoboFab. These make it a font-specific dialect of Python. It could be placed in Language guides as its own category (Font Processing), or in Domain-specific languages, though this is stretching it as it uses pure Python. However, most people other than font designers would not choose this context to learn pure Python, so its not just Python. The categorization options would appear to be:

  • Computer Software/Software Guides/FontLab Scripting
  • Domain-specific languages/Font Processing/FontLab Scripting
  • Programming Languages/FontLab Scripting

  • Another option which has now been done, is to roll this book into a larger one about FontLab in general. i.e. /FontLab/Scripting/
  • This makes the category choice simple. i.e. Computer Software/Software Guides/FontLab