Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hodefoting/kernagic

Semi-automatic font spacing tool
https://github.com/hodefoting/kernagic

Last synced: about 2 months ago
JSON representation

Semi-automatic font spacing tool

Awesome Lists containing this project

README

        

Kernagic
========

Kernagic is a semi-automatic tool for spacing fonts. It provides ways to
interactively preview global and local changes to the glyphs in a UFO font -
these changes can act as a starting point for further manual fine tuning.

The development began in Madrid at the Libre Graphics Meeting 2013, when Øyvind
'Pippin' Kolås (github.com/hodefoting [email protected] pippin.gimp.org) decided
to hack around the automatic font spacing challenge. There, Dave Crossland
introduced him to Frank Blokland's PhD research, published on the [Letter
Model](http://lettermodel.org) website. The initial 'averaging' approach that
Pippin explored (described in the [Interactivos 13
Book](https://gitorious.org/libregraphicsmag/interactivosbook)) was later
discarded, in favour of an approach of stem rhythm placement that deviates from
Frank Blokland's theories.

To fit into a diverse set of workflows, Kernagic uses UFO fonts for input.
UFO can act as a superset of other formats, and tools like
[Fontforge](http://github.com/fontforge/fontforge/) can be used for
converting to and from it.

The snap gap method relies on automatically detected rhythm points, if the
rhythm point detection works poorly with your font, or you want to override
spacing decisions, you can insert your own rhythm points by clicking within
the x-height of the glyph to change in the preview; rhythm point overrides are
saved in the individual glyph files. Clicking below the x-height of a glyph
removes custom overrides; clicking above it inserts a single rhythm point to
be used for both left and right sides of the glyphs.

If metrics are determined, they can be saved back into the UFO (shifting the x
co-ordinates of all points in all glyphs to change the left bearings, and
setting a new advance width to set the right bearings.)

For help about the command line interface, `kernagic --help` provides further
documentation.

Spacing Methods
===============

For visualizing the effect of applied spacing, kernagic allow switch the
rendering from showing original/none/applied metrics.

Original
--------

Show the original font, (included to be able to quickly switch between the
original font and the resulting spacing, pressing F1, F2, F3, .. switches
between the different methods.)

An additional option is available here to proportionally scale the existing
bearings.

Snap gap
--------

This methods permits specifying a desired gap between left and right rhythm
points of glyphs. The bearings indicated by the gap is also snapped to grid in
such a manner that the advance of the glyphs is a multiple of the snap value.

Installation
=====================

From Source
---------------

### Windows

It is possible to compile Kernagic for Windows. TODO: Complete this

### Mac OS X

1. Install XCode. Either with the App Store, or by registering as an Apple
Developer and installing the appropriate XCode version from the
[Developer website](https://developer.apple.com/downloads/index.action)
(Select 'Developer Tools' and type 'Xcode' in the search box.)

2. Install [Homebrew](http://brew.sh)

3. Run Terminal and then type `brew install kernagic --HEAD;` and hit enter

4. Run Terminal and then type `kernagic` and hit enter

Usage
=====================

A video on how to use the program is at: TODO

Running `kernagic --ipsumat` is a way to run the ipsum generator stand-alone as a command line utility. Run `kernagic --ipsumat --help` for more information.

Suggested workflow for snap gap method
----------------------------------------

1) set the snap to 0
2) adjust the gap until the type is as loose/tight as you want it
3) adjust snap, so that it is at a high value; where the type hasn't
fallen totally apart
4) manually adjust remaining glyphs still in need of tuning.

Found a crash?
---------------

A shell script, `kernagic-debug-osx.sh`, is included that allows you to produce
backtraces conveniently on Mac OS X.