Typophile

AFDK 2.0 Fix Startpoints

Göran Söderström0 votes

Hi,

What exactly is the need to set start points correctly? And what is "correct"?

If we forget about the bug in FontLab (and hope it’s fixed soon) when a tangent (if a startpoint) gets converted into two nodes on the same spot) – what is the real need to use, for instance, the "Fix Startpoints" macro in AFDK?

Or use the "Relocate Startpoints" option in FontLab (where you can choose between four positions)?

What could be the worst that happens if I not set the starpoints correctly according to the FDK?

Any practical situations that explains the whole picture?

I’m anxious to know :)

If you open up the macro in a text editor you'll find the following paragraph:

Purpose: This script sets the start point for every contour in every
glyph. Useful for making it easy to compatibilize several single master
faces in preparation converting them into an MM face.

So looks like the main goal of this macro was to lay the work for "Add Master Design", another AFDKO macro.

Looking at the Adobe Type 1 Font Format spec, there's a paragraph that reads:

Whenever possible, use the closepath command to draw one
of the straight line segments, rather than closing a character
with a closepath that results in a zero-length line segment.

This essentially means that a starting point should preferably be placed after a straight line.

The placement of the start point(s) can also have some influence on how the glyphs render at small sizes. AFAIK, this is related with which set of hints is in effect for a portion of the outline(s) at a given time.

The image below displays the rasterization of similar glyphs representing the letter 'A'. The only difference between them is the placement of the starting points (on the internal contour – the counter – and on the external contour). Observe how the counter is not in its optimal position in some of the examples, and/or how the "legs" of the 'A' are sometimes either too thick or too thin.

Miguel,

thanks a lot for your explanations – very pedagogic.

BTW, if you look at Minion you'll find that all contours have at least one straight segment — although it may be just one unit long in round glyphs such as the 'O'. This was done in order to avoid spiking, when generating font instances from the MM source. (AFAIK, there's no reason to do this if you're generating the instances with FontLab)

Miguel,
So you are saying that FontLab MM interpolates differently than the Adobe FDK?

ChrisL

I don't know which tool was used to generate instances (during the font production phase), before we started using FontLab.

What I'm saying is, back in the day when Adobe was still producing and selling MM fonts, that trick had to be done, otherwise the rasterizer could create spikes in some glyphs, for instances created on-the-fly by the user — not by the font developer.

Nowadays there's no need for that artifact, unless you're licensing your fonts in MM format ;-)

Thanks Miguel. So it was just instances created on the fly by the old Adobe MM format. I only use MM in fontlab as a way of interpolating between masters.

ChrisL

Miguel,
What's the meaning of "spiking"?

It's when a node goes wacky an literarily creates a spike. I've seen a few recently while working on a project. It happened after applying a transformation to the outlines. Now imagine something like this happening while you're using the font... ouch!

Here's a paragraph from the Adobe Type 1 Font Format spec about it:

Make sure that any subpath section formed by the closepath
command intended to be zero length, is zero length. If not, the
closepath command may cause a “spike” or “hangnail” (if the
subpath doubles back onto itself) with unexpected results.

I kinda like it as an ending e in a name for a punk rock group Miguel :-)

ChrisL

Miguel.
Thanks for your image and information. I understand well.
Now I'm working on a project that my predecessor type designer had designed. When I saw these situation just like "Minion", I didn't understand why there were two points at same place. Therefore, I've completely deleted the one of two points. But my predecessor was right. I'm gonna read "Adobe Type 1 Font Format spec" again.
And “Fix Startpoints” macro seems useful. I'll try it.

Regards.

Captured from web.archive.org on 30 Jul 2018. view this capture