UFOstretch
buy: €100
version 2.0
Stretch Glyphs.
UFOStretch Extension
UFOStretch is a RoboFont extension that enables you to transform, translate, and interpolate between two masters. It offers a range of measurement tools to ensure precise adjustments, all of which are visualized directly in the tool. The resulting output can directly be integrated into other font files or exported as a new UFO.
This tool is designed to streamline the design process for small caps, inferior, superior, condensed, and extended versions. However, it’s important to note that a ‘human touch’ for fine-tuning the stretched glyphs is still recommended.
Parameters
The parameters control what the stretched glyphs will look like. You can shift, skew, scale, interpolate and add tracking. It is possible to adjust the minimum and maximum values of the sliders using the Preferences button in the toolbar above.
Additionally, you have the option to hide the sliders and control them using hotkeys, which can also be customized in the Preferences.
Text fields
The text fields show the stretched glyphs in context with the original sour
The left text field shows the first source, the middle text field shows the stretched glyphs and right text field can show both sources. Use the ‘Show Both Sources’ option to display the second source on the right. Glyphs that are not in the font or that are not interpolatable will give an error.</p>
Shift Slider
The shift slider moves the glyphs horizontally and vertically, with respectively the X and Y slider. The slider’s hotkey is h
. You can activate the slider with tapping the hotkey, and move the slider even when the slider is not visible. When pressing ⌥ (option) as well, the Y slider is activated.
Skew Slider
The skew slider skews/slants the glyphs. The slider’s hotkey is k
.
Tracking Slider
The tracking slider adds or removes spacing to the left and right side of the glyph. The slider’s hotkey is t
.
Scale Slider
The scale slider scales the glyphs. The slider’s hotkey is s
. Scale also has a x = y checkbox for proportional scaling.
When the scale hotkey is activated, you can check/uncheck the x = y checkbox by pressing c
.
Interpolate Slider
This slider interpolates between the two selected sources. The slider’s hotkey is i
. Interpolate also has a x = y checkbox for proportional interpolation.
When the interpolate hotkey is activated, you can check/uncheck the x=y checkbox by pressing c
.
Display / Parameter Options
You can find the display settings right under the Generate button, next to the text fields. All display colors can be changed under Preferences.
Beam X
Measure intersections with a movable horizontal beam. Drag the handle or the beam itself to move it.
Beam Y
Measure intersections with a movable vertical beam. Each unique glyph has its own beam Y position, that is modifiable by clicking the beam’s handle and dragging it to the desired position. Beam Y can go all the way out of the glyph’s bounds.
It’s also possible to change the beam’s angle. By holding ⌥ (option) and clicking on one of the beam Y handles, the angle will follow your cursor while dragging. Alternatively, double-click on the handle and a view will pop up to manually set the beam Y angle.
Show Both Sources
Show the glyphs on the right as the second source. This allows you to compare your stretched glyphs with both the first and the second source.
Fill
Display the glyphs’ fill color.
Stroke
Display the glyphs’ stroke.
On-curve Points
Display the glyphs’ on-curve points.
Off-curve Points
Display the glyphs’ off-curve points.
Metrics
Display the glyphs’ metrics. The stretched glyphs follow the metrics of the first source.
Show Sliders
Display the parameter sliders. Even when the sliders are not visible you can change the parameter by using their hotkeys (see sliders).
Reset Sliders
Reset all sliders to their default value.
Store Parameters
Save your parameters, as well as the relative paths to the sources and the slider extremes as a .ufoStretch
file.
Load Parameters
Load an existing .ufoStretch
file and set the defined parameters, sources and slider extremes in the extension.
Sources
UFOStretch works with open fonts in RoboFont and interpolates between a first and second source. These can be set in the Sources panel. Opening the Sources panel will diplay a list of all open fonts. You can add more fonts by dragging the UFO file into the Source table, this will open the font in RoboFont and consequently add it to the sources list. Note that if you define only one source, it will act as both the first and the second source.
Preferences
Parameters
Minimum and maximum values for all the sliders in the parameters tab.
Display Colors
All colors for the beams, glyphs and points can be modified for both light and dark mode.
Glyphsets
Define or edit your glyphsets. Glyphset are used when adding to or exporting fonts, so that you can specify exactly which glyphs you want to stretch. All non-kerning groups are added behind the scenes automatically as glyphsets.
All kerning between glyphs in the glyphset will be
Tip: to easily get a list of space-seperated glyph names, select the glyphs in the glyph overview and press ⌥ + ⌘ + c
. Now you can paste the glyph names directly into the glyphset text editor.
Hotkeys
Define the all the hotkeys for the sliders here, as well as the general hotkey for the checkboxes.
Margins
Define the top and bottom margins. These values are expressed as the ratio to units per em.
Generate
Add to Font / Export as Font
UFOStretch gives you two options for generating glyphs, either adding the specified glyphset to an existing (open) font, or exporting it as a new font.
Add to Font
Specify which font you want the stretched glyphs to be added to. When the first or second source is selected, you are required to specify an suffix.
Add to Layer
Add to a specific layer of an existing font. When adding to a layer that is not the default layer, kerning will not be stretched.
Family & Style Name
These text fields will define the exported font’s family and style name. Only an option when ‘Export as Font’ is selected.
Suffix
Add an suffix to the stretched glyphs’ name. When adding to a source font, setting an suffix is required.
Glyphset
Glyphsets define which glyphs will be stretched and which not. You can choose between your predefined glyphsets, the font’s non-kerning groups or all glyphs, but it’s also possible to adjust these in the text field directly.
Round
Round off units for point coordinates, font info and kerning.
Add kerning
Option to add kerning for the stretched glyphs. The kerning is stretched accordingly and applied only to kerning pairs where both glyphs are present in the defined glyph set.
Extra
Copying Glyph Contours
If you right click on a glyph, UFOStretch gives you the possibilty to copy that specific glyph’s contours. When pasting this contour in a glyph view it becomes an easy and direct way to test a single glyph and check point placement in more detail.
The /? Glyph
Just as in the SpaceCenter, typing /?
will display the current glyph. Changing the current glyph will automatically update the UFOStretch view.
ufoStretch API
The module used in UFOStretch used for stretching the fonts is also available as a separate API.
Stretch a defined glyphset by parameters shift, skew, tracking, scale and interpol
The result can be added to a font or as a new font object (appendTo=font/False). Additional parameters include doRounding (round all coordinates, metrics and kerning values) and suffix. Setting an suffix is required when adding to the source fonts.
stretchFont(source1, source2, glyphSet, appendTo=False, shift=(0, 0), skew=0, tracking=0, scale=(100, 100), interpolate=(0, 0), doRounding=False, suffix="")
Credits
© Frederik Berlaen, TypeMyType
Special thanks to: Erik van Blokland, Just van Rossum, Tal Leming & Marte Verhaegen