<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>fontblog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/fontblog/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/fontblog/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:08:10 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>VTT Version 6.30 [August, 2018 release]</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/vtt-version-6-30-august-2018-release</link>
      <pubDate>Thu, 02 Aug 2018 09:09:02 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=1705</guid>
      <description><![CDATA[Download available here

The following are the changes since the 6.20 [March, 2017 release]...]]></description>
      <content:encoded><![CDATA[Download available <a href="https://t.co/RVJRiH7Y54">here</a>

<span>The following are the changes since the 6.20 [March, 2017 release] release of VTT:
• Support for Open Type Font Variations including Intermediates. Previously, VTT only supported varying CVTs at the extremes of axes in the design space. VTT now can vary CVTs anywhere in the design space, including intermediate points between axis masters, and the corners of the design space.
• Updated UI in Variation CVT Windows. The Variation CVT window now clearly shows you how CVTs change at the selected point in the design space: it tells you which CVTs you have edited at that point, which CVTs are varying due to nearby deltas, and which CVTs are unchanged. You can also add, edit and remove instances represented in the cvar table. You can create temporary instances without deltas so you can quickly switch between points in the design space to proof your work. Finally, any can name any instance you create to make it easy to keep track of them.
• Visual TrueType and FontTools. Visual TrueType uses a port of the FontTools varLib library when computing variation delta data for the cvar table.
• Visual TrueType includes a command line utility vttshell.exe. This utility can be used to compile and/or strip sources from a font containing Visual TrueType source data. Usage options are available using the command “vttshell.exe -?”.</span>]]></content:encoded>
    </item>
    <item>
      <title>Glossary of Terms</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/glossary-of-terms</link>
      <pubDate>Tue, 12 Jun 2018 09:44:54 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=1575</guid>
      <description><![CDATA[The following glossary of terms, may be a useful reference for articles on FontBlog

Aliasing:...]]></description>
      <content:encoded><![CDATA[The following <strong>glossary of terms</strong>, may be a useful reference for articles on FontBlog

<strong>Aliasing:</strong> Sometimes called “the jaggies” or stair-stepping. It is an artifact of displaying round or diagonal features on a rectilinear grid like a display screen.

<strong>Anti-aliasing:</strong> Techniques intending to minimize the impact of aliasing, including gray-scale rendering and ClearType. Traditional anti-aliasing techniques use signal-processing methods of sampling and coverage. Many anti-aliasing techniques tradeoff luminance edge contrast (blurriness) for spatial accuracy (position correctness), especially on low-resolution display grids. Anti-aliasing can create blurriness when the size of features you are displaying are similar or smaller than the size of the pixel grid on the display (e.g. if the stem-size in a glyph is equal-to or smaller than one-pixel).

<strong>Font Smoothing:</strong> A specific technique of anti-aliasing used by Microsoft Windows starting with Windows 95. It uses a combination of grid-fitting and oversampling to create a sharper screen image than traditional anti-aliasing techniques. Grid-fitting has the side-effect of increasing luminance edge contrast.

<strong>ClearType:</strong> A Microsoft specific technique that uses sub-pixel rendering to improve the quality of scan-conversion. The technique is based on breaking down a display pixel into its physical sub-components known as sub-pixels—in most cases these are red, green, and blue display elements. Because of the physical nature of sub-pixels, they may have a directional component that may improve quality in one axis (e.g. horizontally) while being neutral along the other axis (e.g. vertically). At small sizes and display resolutions, this asymmetry is not noticeable, but at larger sizes it becomes visible.

<strong>Symmetric Smoothing:</strong> A technique that improves the non-symmetric aspects of ClearType rendering, but at the cost of reducing luminance edge contrast. Luminance edge contrast increases as the PPem size increases. The art of enabling symmetric smoothing is to enable it at a PPEm size where there is a minimal loss of luminance edge contrast while maximizing shape integrity. <em>DirectWrite and GDI both now support symmetric rendering. </em>

<strong>Hinting:</strong> A generic term used in the font industry for improving font quality at low resolutions. It was originally used to describe a set of hints to the scan-conversion routine to create more consistent raster images.

<strong>Grid-fitting:</strong> A specific technique used for improving scan-conversion that involves “snapping” the vertical and horizontal components of the vector outline to align with the target size (PPEm) pixel-grid.

<strong>Instructing Fonts:</strong> A TrueType specific term that involves using instructions in the TrueType interpreter to implement hinting and/or grid-fitting.

<strong>PPEm:</strong> Pixels per Em. A resolution independent method of representing font heights, or Ems, in the raster image. For a given display resolution, font point size can be converted to pixels per em with the following formula:
PPEm (in pixels/em) = (Size in points/em) * ((device resolution in pixels/inch) / (72 points/inch)). For example, 12 points/em on a 300 pixel/inch printer would be 50 pixels/em.

<b>Overscaling:</b> Scaling the font outline data by a large amount above the target size, often 2x, 4x, or even 16x

<strong><a href="https://msdnshared.blob.core.windows.net/media/2018/05/overscaling1.png"><img width="530" height="415" class="alignnone size-full wp-image-1645" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/05/overscaling1.png" /></a></strong>

<em>Illustration of 4x Overscaled outline </em>

<b>
Downsampling: </b>Converts the overscaled pixels to the original target pixel size by applying levels of gray to the pixel based on the percent coverage.

<strong>Luminance Edge Contrast:</strong> Is the maximal light intensity change over a given distance for a feature on a pixel display. If a color changes on a pixel element from the brightest white to the darkest black on the adjacent pixel element, then the luminance edge contrast is high. If a pixel element changes from a gray to a minimally darker gray in the adjacent pixel element, then the luminance edge contrast is very low. If the transition is from maximal white to medium gray then to minimal black, the luminance edge contrast will depend on how physically close those transitions occur. If the display resolution is high, the luminance edge contrast will be higher than if the display resolution is low.

<strong>Display Resolution:</strong> Is the density of pixels on a display surface. The higher the density of pixel resolution with respect to the resolution of the human eye, the more accurately the object can be represented. Typically display resolution is measured in either pixels per inch (PPI) or dots per inch (DPI) (which are equivalent). A more accurate unit of measurement with respect to the human visual system is pixels per degree, which takes into effect the distance the viewer is from the display.

<b></b>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>The ‘gasp’ Table</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/the-gasp-table</link>
      <pubDate>Wed, 09 May 2018 10:42:02 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=1495</guid>
      <description><![CDATA[What is the ‘gasp’ table?
The ‘gasp’ table (Grid-fitting and Scan-conversion Procedure Table) in a...]]></description>
      <content:encoded><![CDATA[<h2>What is the ‘gasp’ table?</h2>
<a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gasp">The ‘gasp’ table (<i>Grid-fitting and Scan-conversion Procedure Table</i>)</a> in a TrueType font plays a very important role in how a Hinted TrueType font will render on-screen on Microsoft Windows. In general, the table contains information that describes the preferred rasterization techniques for the typeface, as well as specifying the combination of sizes and rasterization modes at which hinting should be applied. The following series of posts covering the ‘gasp’ table will go into more detail about the original intention of the table, how it has evolved, editing the different fields, and covering how the style of hinting used in the font effects how the font will render on screen. The following <a href="https://blogs.msdn.microsoft.com/fontblog/?p=1575&amp;preview=true">glossary of terms</a> may be a useful reference while reading this series.

Let’s start with some historical background, as this is relevant to how the ‘gasp’ table works today.
<h2>‘gasp’ table: Historical overview</h2>
Font smoothing, became the default rendering in Windows 2000 and was first released as an option for Windows 95 in the Plus! Pack. Font smoothing was a hybrid grayscale anti-aliasing technique designed to improve the contrast of fonts over traditional anti-aliasing techniques. Traditional anti-aliasing works by rasterizing the font at a much higher resolution called <a href="https://blogs.msdn.microsoft.com/fontblog/?p=1575&amp;preview=true">overscaling</a>, or oversampling, then <a href="https://blogs.msdn.microsoft.com/fontblog/?p=1575&amp;preview=true">downsampling</a> the bitmap. With traditional anti-aliasing the overscaling does not have <a href="https://docs.microsoft.com/en-us/typography/truetype/hinting">Grid-fitting/Hinting</a> applied. This can result in <em>significant blur</em> in the rendering. Font smoothing uses this same anti-aliasing technique, except that it applied ‘font hints’ or ‘grid fitting’ to snap vertical and horizontal edges of the font outlines so that they aligned with the pixel grid, prior to overscaling the outline data. In this situation, most horizontal and vertical stems of a font, when overscaled, cover 100% of the underlying pixels, and when downsampled return the text foreground color, which is usually black. Diagonal and round features of the font will not have full coverage of the pixel and will usually return some shade of gray, reflecting the coverage of the underlying pixel. When sampled with this technique horizontal and vertical features have maximal contrast while diagonals and rounds—which traditionally suffer from aliasing — get the ‘softer treatment’ reducing the aliasing. We liked this technique because of the better contrast — but we found a few problems. For example, in the uppercase K, the left hand vertical stroke is ‘black’ while the diagonals would appear to be ‘gray’. At small font sizes on screen where the strokes are one pixel or less, this led to weird depth cues where the vertical stroke comes to the foreground while the diagonals go to the background. <em>(See Figure 1. below, middle)</em> We found that once the stem-width moves to at least two pixels, this problem tends to go away. <em>Bold fonts were often treated slightly different with bold values enabling font smoothing at lower sizes. If the ‘gasp’ table was not present in a typeface, the rasterizer applied default rules to decide how to render the glyphs.</em>

<a href="https://msdnshared.blob.core.windows.net/media/2018/05/ARIAL10POINTGS.png"><img width="523" height="915" class="alignnone size-full wp-image-1585" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/05/ARIAL10POINTGS.png" /></a>
<em><strong>Figure 1. </strong>Arial 10 point (13ppem)</em>

<strong>Top: </strong>Font Smoothing, No Grid fit.<strong> </strong>Significant blur on horizontal stems and rounds. <em>Note: This is the equivalent of traditional Anti-Aliasing</em>

<strong>Middle:</strong> Font Smoothing, Gridfit: <em>Note: Uppercase K, the left hand vertical stroke is ‘black’ while the diagonals would appear to be ‘gray’.</em>

<strong>Bottom: </strong>Bi-Level Rendering, Gridfit: Two colors represent the font, the foreground color and the background color. Sharp vertical and horizontal stems, aliasing on diagonals and rounds. <i>The core fonts that Shipped with Windows 3.1, including Arial, were hinted for Black and White rendering, (Aliased) to ensure best display at the sizes where Font Smoothing was disabled. </i>

&nbsp;

To address the problem, as described in the Cap K example, the ‘gasp’ table was created. The table allowed the font to determine the sizes that Font Smoothing should be enabled and also allowed the font to tune the sizes at which hinting was enabled. This allowed fonts to determine the exact size that font smoothing turns on or off. Most fonts that provided this level of information turn off hinting and turn on grayscale anti-aliasing below 9 pixels per em (PPEM), where the glyphs are too small for hinting to be useful. This is the equivalent of 7 points on a 96 PPI screen. Above 9 PPEM, hinting was turned on, and font smoothing was typically turned off until the main stems of the font were around two pixels wide. This resulted in the highest contrast, and sharpest text on screen. Once the main stems were two pixels wide, font smoothing and hinting remain on as the sizes increase. Two pixel wide stems are usually chosen because there is usually enough “backbone” of foreground colored pixels to keep the stem contrast high. So although font smoothing was the default, many of the common system fonts such as Times New Roman and Arial, and later Verdana and Georgia, when displayed at typical reading sizes, would render as bi-level, or black and white.
<h2>ClearType: Extending the ‘gasp’ table</h2>
With the introduction of ClearType, we discovered a similar but different issue. An earlier version of the ClearType Rasterizer, used asymmetric rendering because it gave better contrast at lower sizes At larger sizes, however, some aliasing was still evident especially on shallow curves. (See Fig.2 below) The ClearType rasterizer was updated in <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd371554(v=vs.85).aspx">DirectWrite,</a> and more recently in GDI, to support symmetric rendering, which provides antialiasing in both the vertical and horizontal directions, making for much smoothing rendering at larger sizes. Unfortunately, the symmetric filter did not work well at all sizes. As the size decreases, fewer pixels make for coarser rounding, and TrueType hints are needed to maintain stroke consistency while also keeping strong contrast of foreground vs background. At these small sizes, the grey pixels that symmetric rendering introduces, make up a significant proportion of a character’s bitmap, filling in counter spaces such as the interior of the letters ‘e’ and ‘a’, making these characters look heavier and blurred. (See Fig.3 below) It can be beneficial for some fonts, (particularly text fonts, intended for longer reading) to switch to an ‘asymmetric rendering’, i.e.: without vertical antialiasing. This helps to keeps text contrast higher, an important feature. We had hoped to come up with a filter that would support a symmetric filter with high contrast at all sizes but instead settled on changing to a symmetric filter at a threshold value. A new set of flags were added to the ‘gasp’ table so a font could now tell the rasterizer when to switch to the symmetric filter. These new flags were intended to only apply when ClearType is being used.

<a href="https://msdnshared.blob.core.windows.net/media/2018/05/SHALLOWCURVES1.png"><img width="655" height="471" class="alignnone size-full wp-image-1625" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/05/SHALLOWCURVES1.png" /></a>

<i><b>Figure 2. </b>Symmetric v Asymmetric rendering at a larger point size.</i>

<strong>Top:</strong> ClearType Asymmetric rendering
<b>Bottom: </b>ClearType Symmetric rendering

Compare the top and bottom portions of the letter <span>‘</span>C<span>’</span> and <span>‘a’</span> above, where the shallow horizontal curve produces a jagged, high-contrast step pattern in the top example, and and a smoother progression in the bottom example. The symmetric rendering is applied at larger sizes of type, and may be controlled in a font speciﬁc way using the ‘gasp’ table. Font developers may determine at what sizes the rasterizer will apply asymmetric rendering and at what size to switch to symmetric rendering. <em>It is important to note that this smoothing should not be applied at typical text sizes on screen, because it can reduce the overall contrast of the glyph image. This can make text type appear blurred and undermines readability.</em>

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/05/vttdemogasp3.png"><img width="758" height="452" class="alignnone size-full wp-image-1605" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/05/vttdemogasp3.png" /></a>

<em><b>Figure 3. </b></em>Showing the VTT Demo font set at 15ppem (This is the equivalent of 11 point on a 96 PPI screen)

<strong>Left:</strong> Hinting enabled and Symmetric font smoothing disabled via the <span style="float: none;background-color: transparent;color: #333333;cursor: text;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-size: 16px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;line-height: 24px;text-align: left;text-decoration: none;text-indent: 0px">‘</span>gasp<span style="float: none;background-color: transparent;color: #333333;cursor: text;font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif;font-size: 16px;font-style: normal;font-variant: normal;font-weight: 400;letter-spacing: normal;line-height: 24px;text-align: left;text-decoration: none;text-indent: 0px">’</span> table. The result is lighter, but sharper text overall. <em>To ensure consistent rendering, stems must be hinted with a combination of Links and cvt's. I will cover this in more detail in the next post in the series.</em>
<b>Right:</b> Hinting enabled and Symmetric font smoothing enabled via the ‘gasp’ table. Note: The additional grey pixels introduced by symmetric smoothing causes the counter of ‘e’ and ‘a’ to fill in, making the characters heavier and introduces more blur.

This font shown in the example above ships with Visual TrueType. Once VTT is installed the font can be found in Documents&gt;Visual TrueType&gt;sample&gt;VTTDemo.ttf

To view and or edit, the <i>‘gasp’ </i>table in the font, Open the font in VTT &gt; Menu&gt; Edit &gt; Edit Gasp table...

<a href="https://msdnshared.blob.core.windows.net/media/2018/05/SMALLTEXTGASP.png"><i></i><img width="740" height="210" class="alignnone size-full wp-image-1615" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/05/SMALLTEXTGASP.png" /></a>

<b><i>Figure 4. </i></b>Showing the VTT Demo font set at 7ppem. (This is the equivalent of 5 point on a 96 PPI screen) At very small sizes, symmetric rendering and no hinting is recommended, where the glyphs are too small for hinting to be useful.
<b>Left:</b><span> Hinting disabled and Symmetric font smoothing enabled<b><i>. </i></b></span>
<b>Right:</b><span> Hinting enabled and Symmetric font smoothing enabled<b><i>. </i></b></span>

The ‘gasp’ table in VTT Demo font is set to
<ul>
 	<li>Disable hinting, and enable symmetric smoothing below 8ppem.</li>
 	<li>Enable hinting, and disable symmetric smoothing from 9 to 18ppem.</li>
 	<li>Enable hinting, and enable symmetric smoothing @ 19ppem and above.</li>
</ul>
<h2>Setting the ‘gasp’ Table for <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd368038(v=vs.85).aspx">ClearType and DirectWrite</a>.</h2>
As discussed, the choice of which rendering mode to use for a given size is controlled by the OpenType ‘gasp’ table. Specifically, the ‘gasp’ table lists a set of size ranges, and for each, a set of flags that specify whether to apply hinting and whether to use symmetric or asymmetric rendering. Font Designers can choose the size ranges and rendering modes that best suit the style of the font, and hinting method used, and that provides a smooth progression of weight across size ranges. These settings may vary from font to font, within a family, as well as family to family.
<h2>Choosing ‘gasp’ table ranges</h2>
The ‘gasp’ table provides quite a bit of flexibility, but the current hinting and rendering environments do not require complex ‘gasp’ tables. Microsoft suggests that most fonts only require three or four ranges:

<strong>Very small sizes:</strong> (typically 0-8ppem*), Render un-hinted, symmetric.
<strong>Moderate sizes:</strong> (typically 9-17ppem*), Render hinted, asymmetric.
<strong>At larger sizes:</strong> (&gt; 17ppem*), Render hinted, symmetric.
<strong>Very large sizes:</strong> (Optional) (&gt; 100ppem<strong>*</strong>), render un-hinted, symmetric

<em>(approximatively<strong>*</strong>)</em>
<em>Though the above is a rough guideline; not all fonts in a font family will have exactly the same ‘gasp’ table.</em>

A good guideline for choosing ranges is to consider the thickness of horizontal hairlines / thin strokes that are important for legibility – e.g. the crossbar of the lowercase ‘e’. At some smaller sizes, this thickness will resolve to less than a pixel. In that case, asymmetric rendering will be better as the stroke will still render with a full pixel, aiding legibility. At higher sizes, this thickness will resolve to greater than one pixel, for which symmetric rendering will be better. So, a good point to switch from asymmetric to symmetric rendering is the size at which the thickness of the thin horizontal strokes moves just past one pixel. Since the thin strokes of bold fonts are thicker than the corresponding strokes in lighter weights, the ‘gasp’ table for Bold fonts may switch to symmetric rendering at a smaller size than lighter weights. Similarly, the light weight in a family might cut over at a higher size.

See <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gasp#sample-gasp-table">sample 'gasp' Table, and more information here</a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/04/GASPILLUSTRATION.png"><img width="551" height="539" class="alignnone size-full wp-image-1515" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/04/GASPILLUSTRATION.png" /></a>

<strong>Above, to show an example, is the ‘gasp’ table shown in VTT. </strong><em>(Visual TrueType 6.2, Arial Regular Font) </em>
<ul>
 	<li>To View and Edit the ‘gasp’ table in VTT: Open a Font in VTT &gt; Edit Menu &gt; Edit Gasp Table</li>
 	<li>The left two columns control the settings to enable/disable Font Smoothing.</li>
 	<li>The right two columns control the settings to enable/disable ClearType symmetric/asymmetric</li>
</ul>
<strong>Note:</strong> <em>Enable ClearType Flags, to activate ClearType ‘gasp’ settings</em>

<strong>Font Smoothing Settings</strong>

<strong>1.</strong> At 8ppem and below, disable Grid Fit (or Hinting) &amp; enable Grey-scale (Font Smoothing)
<strong>2.</strong> At 9ppem to 17ppem, enable Grid Fit (or Hinting) &amp; disable Grey-scale (Font Smoothing)
<strong>3.</strong> Above 17ppem, enable Grid Fit (or Hinting) &amp; enable Grey-scale (Font Smoothing)

<strong>ClearType Smoothing Settings</strong>
<b>4.</b> At 8ppem and below, disable Grid Fit (or Hinting) &amp; enable Non CT AA (ClearType Symmetric Smoothing)
<b>5.</b> At 9ppem to 17ppem, enable Grid Fit (or Hinting) &amp; disable Non CT AA (ClearType Symmetric Smoothing)
<b>6.</b> Above 17ppem, enable Grid Fit (or Hinting) &amp; enable Non CT AA (ClearType Symmetric Smoothing)

In the next post I will go into more detail on how to best set the ‘gasp’ table, based on the style of font hinting used, as well as proofing and editing the values.

Mike]]></content:encoded>
    </item>
    <item>
      <title>Hinting Font Variation fonts in VTT 6.2</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/hinting-font-variation-fonts-in-vtt-6-2</link>
      <pubDate>Mon, 27 Mar 2017 21:29:41 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=1375</guid>
      <description><![CDATA[The latest version of VTT, (6.20) allows for the easy addition of hinting to Variable Fonts. There...]]></description>
      <content:encoded><![CDATA[The latest version of VTT, (6.20) allows for the easy addition of hinting to Variable Fonts. There are two main new additions to the UI, to facilitate this. <a href="http://aka.ms/vtt-fontblog">Download VisualTrueType 6.20.</a>

<strong>Variation Window.</strong> The Variation window shows you the current selected glyph outline and hints, <em>(just like in the Main window)</em> for the selected variable font instance. With both the Main and Variation windows open, you can easily edit hints in the Main window and see the impact update live, on variations glyphs in the Variation window. <em>Because hints in a variable font are associated with the default instance and merely follow interpolated CVTs for other instances, <strong>you can only edit hints in the Main window. </strong></em>The Variation window also allows for proofing the hinting results for variation instances within a font.

<strong>Variation CVT Window.</strong> When you select a master instance, you can adjust the CVTs for that instance; just type a change and hit Ctrl-R to recompile. The Variation CVT window will show you which CVTs vary across the font and how they differ from the default instance. If you select an intermediate instance, you can *<em>inspect</em> the interpolated CVTs for that instance. This is discussed in further detail below, in <strong>The Variation CVT Window</strong> section. *<em><strong>Note: </strong>VTT does not yet support editing intermediate instance CVTs.</em>

<em>The Variation CVT Window can also be used to select which variable font instance you would like to proof in the Waterfall, Text Sample, and Variation Windows.</em>

<em><strong>Note:</strong> VTT currently only supports varying CVTs for masters at the minimum, maximum, and default coordinates of variable font axes.</em>

<strong>Setting up for Hinting and Proofing in VTT. 6.20.</strong>

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/VTT1.png"><img width="1709" height="865" class="alignnone size-full wp-image-1406" alt="vtt" src="https://msdnshared.blob.core.windows.net/media/2017/03/VTT1.png" /></a>

&nbsp;
<ol>
 	<li>Main View</li>
 	<li>Variation View <em>(Choose the View Menu &gt; Variation)</em></li>
 	<li>The Variation view Window displays the currently selected Variation Instance.</li>
 	<li>Variation CVT Window.</li>
</ol>
The short video below, shows the basics of set-up, running the Light Latin Autohinter, and editing the hints, in a Variation Font. There are a few ways to begin Hinting on a font, including editing the CVT Table manually and adding the hinting via the Visual UI, running the Autohinter, or preparing the font for Hinting, via Control Program only. <em>Please see <a href="https://blogs.msdn.microsoft.com/fontblog/wp-admin/post.php?post=364&amp;action=edit">this previous post </a>for more information on setup and Autohinting.</em>

[video width="1704" height="864" mp4="https://msdnshared.blob.core.windows.net/media/2017/03/ScreenCapture_23-03-2017-11.36.262.mp4"][/video]
<ol>
 	<li>Open the Font Variation font you wish to add hinting to.</li>
 	<li>From the VTT Menu, choose Tools &gt; Autohint &gt; LightLatin Autohint</li>
 	<li>File &gt; Save</li>
 	<li><strong>Edit the hinting.</strong> Hinting is done in the Main Window on the default instance of the font, <em>(in the same way as was done before for static fonts)</em>. With both the Main and Variation windows showing side by side, you can edit hints in the Main window and see the hints update live in the Variation window. Because hints in a variable font are associated with the default instance and merely follow interpolated CVT’s for other instances, you can only edit hints in the Main window. In this example, when using the Light Latin Autohinter, the only CVT’s that are used in the hinting, are for Height control. As the Heights, <em>(such as x-height and Cap Height, for example)</em> are consistent across the Variations in this font, there is no need to make any further edits to the Variation CVT table. The Light Latin Autohinter in VTT, uses the <em>‘ResYdist’ </em>command, to control stem weights. This generally works very well across the variations, when rendered in environments such as DirectWrite, that have support for vertical anti-aliasing. If CVT’s are used for stem hints or for Height anchor CVT’s that need to change along a variation axis, then you need to adjust those CVTs for each variation master in your font. This is discussed in further detail below, in the Editing Variation CVT’s section.</li>
 	<li><strong>Proofing.</strong> Proofing the hints, can be done by looking at the visual size run in the main Window, as well as in the Variation Window. There are two ways to change the variation instance to preview and proof in the Variation window. (A) Choose from the Display Menu &gt; Variation Instance &gt; Choose Variation, Light, Bold, Semilight etc. (B) CTRL + Shift + up arrow / down arrow, on the keyboard, is a quick way to toggle through all of the variations in the font. CTRL 8, displays the Waterfall window, which allows for a quick preview waterfall of the glyphs that are in the text sample. <em>(To change the text sample see, Tools &gt; Options &gt; Extra Text. Glyphs added here will display in the text sample at the top, in the Main and Variation Windows, as well as in the Waterfall sample). Proofing can also be done on the entire glyph set, by choosing View &gt; Character / glyph set. CTRL + Shift + up arrow / down arrow, on the keyboard, can be used in both the Waterfall view as well as the Glyph set view to toggle between all of the available font variations. <strong>Note: </strong></em>One set of hints covers all masters in the font. If there are problems with the hints, or you change you mind on the hinting strategy, select the Default master and edit the hints again in VTT’s main window. Remember, though, that any changes here effect all masters, so you’ll need to proof everything across all instances for the re-hinted glyphs again.</li>
</ol>
<strong>The Variation CVT Window.</strong>

If you used CVTs for stem hints or anchor CVTs that need to change along a variation axis, then you need to adjust those CVTs for each variation master in your font. The short video, illustrations and text below, show an example of how to do this.

<em>1) Hint the default instance as you normally would, creating CVTs and placing visual hints (or high-level instructions). Proof it as you normally would. If you want, you can use the Light Latin Autohinter, or just the Control Program generator to get a start on your CVTs for heights in the font.</em>

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/measure2.png"><img width="1039" height="695" class="alignnone size-full wp-image-1456" alt="measure2" src="https://msdnshared.blob.core.windows.net/media/2017/03/measure2.png" /></a>

<strong><em>a</em>.</strong> Open up the Variation window <em>(Menu &gt; View Variation)</em> and the Variation CVT window. <em>(Menu &gt; View Variation CVT)</em>
• The Variation CVT window lets you select a particular variation master <em>(or any named instance),</em> and shows you the CVT values for that master <em>(and, in parentheses, the difference between that value and the default instance, if there is one).</em> The Variation window displays the currently selected glyph using the Master you selected in the Variation CVT window, <em>or from the Menu &gt; Display &gt; Variation Instance.</em>
• In the Variation CVT window, select one of your non-default masters from the drop down menu. In this example I have chosen the Bold Master, in the Selawik Font Variations font. <em>Note: The Variation, Waterfall, and Text Sample windows will all switch to that instance.</em>
<strong><em>b.</em></strong> In this example, I have already measured the outline for the Uppercase Round stems in the default font. The outline measurement <em>(from point 6 to point 18 on the Cap O)</em> in the default font = 81 font units, as shown in the Green highlighted box. This feature will now reference CVT 68, <em>(Uppercase Y Stroke)</em> in the standard CVT Table. See the illustration above, by the Red arrows, showing the VTT Talk Window, ResYlink(6,18, <strong>68</strong>). CVT 68 stores a value of 81 font units, in the CVT Table. Now use the measure tool in the Variation window to measure the new CVT values for the other masters in the font. Here I have measured the round stem for the Capital O for the Bold Master, which results in a measurement of 136 font units. CVT 68 now needs to be updated in the Bold Master, CVT Variation Window, to reflect the correct weight of the Bold Master.

You can see in the following illustration, if I <em><strong>do not</strong> </em>update the Bold Master, CVT Variation Window, to reflect the correct weight, the Bold Capital O, is incorrectly rendered too light from 9-16ppem, as the CVT 68, used in the Hinting, is still referencing the default font weight value of 81 font units, as stored in CVT 68 in the standard CVT Table, instead of the correct measured weight for the Bold Master for this feature of 136 font units.

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/incorrectweight.png"><img width="1040" height="695" class="alignnone size-full wp-image-1445" alt="incorrectweight" src="https://msdnshared.blob.core.windows.net/media/2017/03/incorrectweight.png" /></a>

<strong>To correct this:</strong>

c. In the Variation CVT window, for the Bold Master, find the corresponding CVTs , in this example, CVT 68, and update the values to reflect the actual measurement of the Uppercase Bold Stem. Ctrl-R to compile. The CVT for that instance will be updated, and rendering will be updated accordingly. <em><strong>Note: </strong></em>There are two ways to change this CVT value in the CVT Variation window. <strong>1.</strong> Scroll to find the appropriate CVT, in this case CVT 68, and change the value to the actual measured value for the Bold Master, which is 136 font units. When the CVT has been updated, and the window is compiled, CVT 68, will be automatically deleted from the unvaried CVT list, and moved into the Varied CVT list. <strong>2.</strong> Type the updated CVT 68, directly into the Varied CVT list, in this format, 68: 136 (with the new value reflecting the actual measured value for the bold master), and compile (ctrl R). This will automatically update the <em>Varied</em> CVT list, and remove CVT 68, from the <em>Unvaried</em> CVT list.
Here is the example, <em>see illustration below.</em>

Variation CVT (Green highlight below)

<strong>68: 136 (55) </strong>(Red highlight below) <em>Note: when you enter a varied CVT value, it can either be an absolute value, e.g. 136, or a relative value (55)</em>
In the above, CVT 68 now has the correct value of 136 font units for the Bold Master instance, which is a difference of 55 <em>(shown in brackets)</em> from the value for CVT 68 in the default instance (thus, the default instance of CVT 68 is 81).

With the new CVT value now added to the Varied CVT list, and compiled, in the CVT Variations table for the Bold Master, the correct weight is now rendered for this feature, in the Bold Master. See illustration below.

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/varied.png"><img width="1040" height="695" class="alignnone size-full wp-image-1455" alt="varied" src="https://msdnshared.blob.core.windows.net/media/2017/03/varied.png" /></a>

<strong><em>d.</em></strong> Proof the rest of this instance to make sure you have all of the appropriate CVTs updated in the CVT Variations table as you’d like them, and reflecting the actual measurements in the Bold font.
<em><strong>e.</strong> </em>Remember again, that you have only one set of hints for all masters in the font. If you want to edit them, select the Default master and edit them in VTT’s main window. Remember, though, that any changes here effect all masters, so you’ll need to proof everything again.
<strong><em>f.</em></strong> Repeat steps <em>a-e</em> for each Master in your font.
<ul>
 	<li><strong>See the short video below, showing the steps to take in VTT, for editing the CVT for the Capital Bold Stems. </strong></li>
</ul>
[video width="1036" height="692" mp4="https://msdnshared.blob.core.windows.net/media/2017/03/ScreenCapture_27-03-2017-12.49.141.mp4"][/video]
3) Now that you’ve hinted all the masters, your font should be ready to go, but it’s useful to proof any named instance you have defined in the fvar table, that is purely interpolated <em>(i.e. that doesn’t have a master associated with it – e.g. semibold).</em>

<strong>To do that:</strong>
a. In the Variation CVT window, select a non-master instance. Notice that the CVT area will be greyed out. That’s because this instance is not a master, so there are no explicit CVTs associated with this instance. Operating systems will interpolate this instance’s CVTs from nearby applicable masters (thus CVTs are implicit, not explicit), and thus you cannot edit them.
b. Proof the instance in the Variation, Waterfall, Sample Text, etc windows.
c. If there are problems with this instance, then you will need to make a change. However, since this instance is not a master, you cannot directly change it. You have the following options:
i. You can change the base hints in the default master. To do this, make your changes in the main window, hit Ctrl-R, and you can instantly see the results in the Variation window. Note that changing the base hints will impact all your instances so you will need to proof those again.
ii. You can edit the CVTs of nearby masters so that they interpolate the way you want them to for this instance. To do this, select each master in the Variation CVT window and make changes accordingly. Note that this will impact each of those masters as well as everything in between.

4) Your font should now be fully hinted and ready to go now.
We recommend a light hinting style using ResYDist() instead of Links, with CVTs, and using CVTs only for height anchors. For more information on the <strong>RES Instructions</strong>, <a href="https://blogs.msdn.microsoft.com/fontblog/2016/07/08/the-new-res-hinting-aka-smart-hints/">see this post</a>. This is the same style that the Autohinter uses. This approach makes the hinting process much simpler, and saves time <em>(only a few CVTs vary)</em> and generally results in very good quality, for rendering environments such as Direct Write, which has support for y-direction smoothing

Mike

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Some notes on the New ‘Res’ Hints, aka Smart Hinting.</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/the-new-res-hinting-aka-smart-hints</link>
      <pubDate>Fri, 08 Jul 2016 13:16:43 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=1305</guid>
      <description><![CDATA[The newest versions of Visual TrueType include a new set of instructions called ‘Res’ hints....]]></description>
      <content:encoded><![CDATA[The newest versions of Visual TrueType include a new set of instructions called ‘Res’ hints. <em>(Rendering Environment Specific).</em> Unlike old-style hints, which always round to a full pixel, ‘Res’ hints adjust to fractional pixels, when this option is available. The ‘Res’ hints adjust automatically to take advantage of whatever antialiasing mode an operating system is using, from 1990s-style black and white rendering, to the latest vertically and horizontally antialiased versions of ClearType.

To better understand the flexibility ‘Res’ instructions have, it’s worth reviewing how old-style hints worked.
<h2>Older Style Hints</h2>
When working with the traditional set of TrueType instructions, you need to use a different set of hints for each rendering environment, that support different rounding granularity’s. For example, in Black-and-White rendering, the strokes of the fonts’ letterforms typically have a width onscreen that is a multiple of a full pixel, because in black-and-white rendering, a pixel is either fully on or fully off. As the type size on-screen increases, features in the y-direction, such as y-round features on the lowercase ‘n’ and ‘o’, must break from one full pixel to two, two to three, three to four, and so on.

The first release of ClearType <em>(ClearType GDI rendering), </em>did not change the rounding granularity for y-direction features. While the x-direction features, such as stems, increased in resolution, the y-direction features were still restricted to having a width that was a multiple of a full pixel.

ClearType DirectWrite, <em>(now used in most modern Web Browsers on Windows)</em> introduced y-direction antialiasing, which changed this rounding granularity. A pixel in DirectWrite, can assume an intermediate shade of grey or color. The intermediate shade is related to the fractional area of the pixel that is considered as being “inside” a letterform.

Using older hinting methods, in previous versions of VTT, you would need one set of hints for black &amp; white and ClearType GDI, where “hints”, such as ‘YLink’ or ‘YDist’ would constrain parts of the letterforms’ outlines to a full pixel boundary. This was the correct rounding for these rendering conditions. However, for ClearType in DirectWrite, a different set of hints would be needed for the same parts of the outlines, so that the same features rounded to a fractional pixel value, allowing for a more accurate and subtle rendering of type onscreen.

<a href="https://msdnshared.blob.core.windows.net/media/2016/07/nrendering1.png"><img class="alignnone wp-image-1335 size-full" src="https://msdnshared.blob.core.windows.net/media/2016/07/nrendering1.png" alt="nrendering" width="763" height="719" /></a>

The new ‘Res’ instructions solves this problem by defining a new set of hints in VTT Talk, allowing the appropriate rounding to happen automatically for a variety of rendering environments. Unlike VTT Talk’s existing hints, which map to a series of TrueType instructions, the new ‘Res hints’ map to a set of TrueType functions. <em>These functions determine the correct rounding granularity dynamically.</em> In the example above the ‘y-round’ of the lowercase ‘n’ is hinted using a ‘<strong>Res</strong>Ydist’ command. In Black and White rendering and ClearType GDI rendering, the feature will round to a full pixel or pixels. (Note, the y-round of the ‘n’ in (1) and (2) above, breaks from one to two pixels, at 13 to 14 point, in both the Black and White and ClearType GDI. In ClearType DirectWrite, (3) which has support for y-direction antialiasing, the feature will round to a fractional pixel, allowing for a smoother transition at these break points.
<h2>Using Older Hinting commands v new ‘Res’ hints</h2>
When using the traditional set of hinting commands, such as YLink or YDist, to control y-direction features, a difficult decision is always to decide at what size the hairline features or y-Rounds in a font should break from one pixel to two, and two to three, etc. As the size onscreen increases, there are more pixels available. However, even with the introduction of additional y-smoothing in DirectWrite, which allows for a more fine grained fractional rounding, the older hinting commands were designed to round to a full pixel. At these critical pixel break sizes, one pixel can often look too light, while two full pixels can make these fine features appear too heavy. The example below, shows the Georgia font at 38ppem. <em>38ppem can be both a larger Display size on screen at 96dpi, or 9 point on a 300 dpi screen.</em>
<ul>
	<li>The illustrated examples below, are shown using DirectWrite Rendering. (1) &amp; (2) both use the older ‘YDist’ command, to control the y-rounds, while (3) uses the new ‘<strong>Res</strong>Ydist’ command.</li>
</ul>
<strong>(1)</strong> The rounds of the lowercase characters, such as, the top round on the ‘a’, top and bottom rounds of the ‘o’ and ‘s’, and top round and middle bar of the ‘e’, all round to one full pixel. Although this may appear sharp, the weight is not correct. On a lower DPI screen, where 38ppem is a Display size, these features will look too light. On a 300 dpi screen, 38ppem is equal to 9 point. In this case the physical pixels are much smaller, and when these features are only one pixel in width, they can almost disappear on screen, and can cause the text onscreen to have an uneven look, causing the text to <em>‘sparkle’</em>.

<strong>(2),</strong> In this example all of the same features render as two full pixels. While this may help strengthen the appearance of the text on screen, the features now look too heavy and clunky.

<strong>(3)</strong> The best solution is to use ‘Res’ hints, where these features can round to a fraction of a pixel. <em>(Illustrated below, see the top round and middle bar of the lowercase ‘e’.) </em>This allows for these fine features of the font, to be displayed onscreen, both at lower resolution and higher, at the correct weight. On higher resolution screens, because the pixels are so small, the effect is that the features appear to be the correct weight, and any additional blur is not noticeable. The overall typographic color of the text is much improved in both cases.

<a href="https://msdnshared.blob.core.windows.net/media/2016/07/highresexample32.png"><img class="alignnone size-full wp-image-1365" src="https://msdnshared.blob.core.windows.net/media/2016/07/highresexample32.png" alt="highresexample3" width="773" height="1102" /></a>

The following are the ‘Res’, Y-Direction hinting commands added automatically by the VTT 6.10 Light Latin Autohinter.
<ul>
	<li><strong>ResYAnchor</strong></li>
	<li><strong>ResYDist</strong></li>
</ul>
When a font is hinted using cvt<em>’</em>s, <strong>ResYlink</strong> can be used <em>See the font VTTDemo.ttf, that ships with VTT 6.10, as a reference.</em>

<strong>Note:</strong> <em>Adding the new ‘Res’ commands is not supported when using the GUI (Graphical User Interface) for Hinting. If you are hinting a font using the GUI, ‘Res’ will need to be appended to the existing Hinting commands. This can be done by editing in the VTT talk window and compiling. </em>

<em>The Light Latin Autohinter, will add the ‘Res’ commands automatically. You can then continue to edit the hints in the font, via the GUI, and VTT will preserve the ‘Res’ hint commands. </em>

Mike

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Fine Tuning the Light Latin Autohinter output (Part 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/fine-tuning-the-light-latin-autohinter-output-part-2</link>
      <pubDate>Fri, 03 Jun 2016 14:01:45 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=1255</guid>
      <description><![CDATA[In the first post, in this series on Fine Tuning, I looked at editing the Autohinter code, where the...]]></description>
      <content:encoded><![CDATA[In the <a href="https://blogs.msdn.microsoft.com/fontblog/2016/05/27/fine-tuning-the-light-latin-autohinter-output/">first post, in this series on Fine Tuning</a>, I looked at editing the Autohinter code, where the Autohinter did not recognize certain features.

In this post I will look at second category.

<strong>2. Local adjustments to individual glyphs hints, to add Interpolate commands, to improve the typographic color and proportion of the glyph,</strong>

The Autohinter in VTT 6.10 does not currently add <em>Interpolate </em>commands. An <em>Interpolation</em> helps to control the proportions of a glyph, by maintaining the relative position of one or more <em>‘child’ </em>points that fall between two other <em>‘parent’ </em>points. The key word is <em>between</em> — the child point(s) cannot be further in the Y direction than either parent or on the same Y coordinate.

When a <em>YInterpolate</em> command is added, it moves the point or points that are Interpolated, along the Y-Axis, in the hinted outline, so that their relationship to a reference point 1 and a reference point 2,  is kept the same as it was in the original un-hinted outline. This helps to preserve the original proportion and maintains a good typographic colour onscreen.

The following animation shows some examples of <em>YInterpolations</em> that are added to a typical font. The Animation shows adding <em>YInterpolate</em> commands to the following glyphs, Capital A, B, K, N, R, V, W, X, Y, and lowercase k, v, w, x, y. Note, once added and compiled, this instruction works to fix all sizes of the glyph. The animation is just under 3 minutes long. This is all the time it takes to add the Interpolation commands to the glyphs, I mentioned above.

[video width="668" height="668" mp4="https://msdnshared.blob.core.windows.net/media/2016/06/ScreenCapture_07-06-2016-11.15.46.mp4"][/video]

<em><strong>Note:</strong></em> When using the Graphical hinting tools, make sure to have the following set up in the Tools &gt; Options Window. This will ensure that when the hints are added via the graphical hinting tools, the code will be automatically compiled. When the code is written directly into the VTT Talk window, it needs to be compiled. (ctrl R)

<a href="https://msdnshared.blob.core.windows.net/media/2016/06/autocompile.png"><img class="alignnone size-full wp-image-1295" src="https://msdnshared.blob.core.windows.net/media/2016/06/autocompile.png" alt="autocompile" width="425" height="532" /></a>

I will take a closer look at the <em>YInterpolate</em> command in the next post in the series.

Mike

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Fine Tuning the Light Latin Autohinter output (Part 1)</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/fine-tuning-the-light-latin-autohinter-output</link>
      <pubDate>Fri, 27 May 2016 11:06:12 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=717</guid>
      <description><![CDATA[No Autohinter is perfect. The intent is that the Light Latin Autohinter works well enough for most...]]></description>
      <content:encoded><![CDATA[<em>No Autohinter is perfect.</em> The intent is that the Light Latin Autohinter works well enough for most glyphs. Autohinting for all glyphs in the font should be carefully checked and proofed in VTT 6.10. Hinting for certain glyphs may need editing, either by using the Visual Hinting tools, or by editing the VTT Talk code directly.

As with any typeface design project, a great proofing and editing environment, is critical to achieving great quality results. VTT 6.10 has a built in Rasterizer, that can match how fonts render in the Browser, allowing you to confidently proof your font, and edit the hints, before installing and testing the font live from within the browser. Proofing can be done in the Main Glyph window, by viewing the rendering in the text run examples below the main glyph. <em>By viewing the glyph run as well as looking at the Visual Hinting display, you will begin to recognize when you see certain features that have not been recognized by the Autohinter, or when the Hints are referencing incorrect points on the outline.</em>

see the <a href="https://blogs.msdn.microsoft.com/fontblog/2016/04/04/preparing-settings-in-vtt-6-10-for-hinting-and-proofing-webfonts/">previous post on setting up VTT 6.10 for proofing Webfonts,</a> to ensure you have the correct settings.

<em>There are a few categories of fixes, (listed below 1-4), that may require some attention. </em>

<strong>1. Local fixes to hints within an individual glyph, where the Autohinter has not recognized a certain feature, and the hints may either be missing for that feature, or hints are referencing incorrect points on the outline.</strong>

2. Local adjustments to individual glyphs hints, to add interpolate commands, to improve the typographic color and proportion of the glyph,

3. Local fixes to individual glyphs to add <em>‘deltas’</em> at specific sizes, to enhance legibility, and to improve the shape &amp; proportion of the glyph.

4. Global adjustments, added to the<em> ‘cvt’</em> table to adjust the heights of a range of glyphs, at a specific size, such as x-height for all lowercase glyphs, or Cap Height, for all Cap characters.

In this post, I will cover some examples of Category 1. <strong>Number 1 is the most important of these fixes, and will need special attention after the Autohinter has run.</strong> Categories, 2, 3, &amp; 4 relate to <em>‘fine tuning’</em> the font hinting to further improve the screen output quality. I will cover these in a later post.
<h2>Category 1.</h2>
<h2>Example glyph: Cap Q, Georgia Pro Regular.</h2>
In this example, the Autohinter Light, does not recognize the bottom round feature in the Capital Q, and does not add any hinting to control this feature. This results in this part of the glyph, looking too light onscreen at a range of sizes, and the feature does not round consistently. See the <em>illustration</em> below, <em>Green box highlighting problem of missing hints, and red underlines highlighting the rendering issues.</em>

<a href="https://msdnshared.blob.core.windows.net/media/2016/05/CapQ.png"><img class="alignnone size-full wp-image-1185" src="https://msdnshared.blob.core.windows.net/media/2016/05/CapQ.png" alt="CapQ" width="672" height="669" /></a>

<strong>Editing the Hinting, to add a fix, is easy.</strong>

There are two ways to approach it, either by using the graphical hinting tools, or by writing the code directly in the VTT Talk Window, and compiling.
<h2>Using the Graphical Hinting tools.</h2>
The fix can be made to the ‘Q’, by adding new hinting commands, using the Graphical Hinting tools. <em>(See the steps and the animation below)</em>

<strong>(1)</strong> Choose the <strong>YLink</strong> tool from the toolbar. With the left mouse button held down, drag from point, 13, to 31. This will add two lines of code in the VTT Talk Window. <em><strong>(a) </strong></em>Yanchor is added to point 13, using a reference to cvt 9, <em>(Cap Round undershoot)</em> and <em><strong>(b)</strong> </em>YDist is added from point 13 to point 31

<em><strong>(a)</strong> </em>YAnchor (13,9) <em>(code added by the GUI, hinting)</em>

<em><strong>(b)</strong> </em>YDist (13,31) <em>(code added by the GUI, hinting)</em>

<strong>(2)</strong> Choose the <strong>YInterpolate</strong> tool. With left click on the mouse held down, position the middle of the YInterpolate cursor over point 13, and drag from point 13 to point 31. With left click on the mouse held down, drag the YInterpolate<em> ‘elastic band’</em> , to select point 0, as the point to be interpolated between point 13, and point 31, as shown in the animation below. This will add the following line of code to the VTT Talk.
<ul>
	<li>YInterpolate (31,0,13)</li>
</ul>
<strong>(3) </strong>Open the VTT Talk Window (ctrl 5) and type <strong>Res</strong>, in front of the YAnchor(13,9)
<ul>
	<li><strong>Res</strong>YAnchor (13,9) = <em>(<strong>Final code</strong>, with the Res appended manually in the VTT Talk)</em></li>
</ul>
<strong>(4) </strong>Open the VTT Talk Window (ctrl 5) and type <strong>Res</strong>, in front of the YDist(13,31)
<ul>
	<li><strong>Res</strong>YDist(13,31) = <em>(<strong>Final code</strong>, with the Res appended manually in the VTT Talk)</em></li>
</ul>
<em><strong>Note:</strong> The <strong>‘Res’</strong> commands used to control the rounding, are not supported in the GUI, and will need to be appended to the VTT Talk code manually. </em>

<strong>(4)</strong> Compile the VTT Talk Window (ctrl R)

<strong>(5)</strong> Save (ctrl S)

<em><strong>Note:</strong></em> <em>When using the Graphical Hinting tools, to add hinting, the high level code for these hints are added to the VTT Talk Window. When Hinting is added via the GUI, VTT will delete the original ‘comments’ added by the Autohinter. Make a copy of the font, once the Autohinter Light has run as a backup, if you would like to have a reference to these comments. The comments are shown in the VTT Talk Window between /* &amp; */. For example: /*Auto-Hinting Light*/. These comments may be useful to keep as a reference to how the font was hinted.</em>

[video width="668" height="668" mp4="https://msdnshared.blob.core.windows.net/media/2016/06/ScreenCapture_01-06-2016-15.17.29.mp4"][/video]

<em>The code added as shown in the animation above, will fix the rendering problem in the Q at a full range of sizes.</em>
<h2>Writing the code directly into the VTT Talk Window.</h2>
<strong>(1)</strong> Go to the Cap Q, and open the VTT Talk Window (crtl 5), as shown above.

<strong>(2)</strong> There are three commands that need to be added. (<em>a:) </em><strong>ResYanchor</strong> on point 13, to anchor this point to the Cap Round undershoot, which references cvt 9. (<em>b:)</em> Adding a <strong>ResYdist</strong> to control the distance from point 13 to point 31. <em>(c:)</em> Adding an interpolate command to position point 0, so that point 0, is in the correct position, relative to point 13 and 31, which now have new gridfitted positions.

/*New Code Added Manually*/

ResYAnchor (13,9)

ResYDist (13,31)

YInterpolate (31,0,13)

<strong>(3)</strong> Compile the VTT Talk Window (ctrl R)

<strong>(4)</strong> Save (ctrl S)

<a href="https://msdnshared.blob.core.windows.net/media/2016/05/manualedits.png"><img class="alignnone size-full wp-image-1235" src="https://msdnshared.blob.core.windows.net/media/2016/05/manualedits.png" alt="manualedits" width="672" height="669" /></a>

<em>Looking at the Hinting in the Cap O will give a good reference here to follow, to control the bottom round of the Cap Q. Note, when the new code is added as shown below, compile the code (ctrl R) on the Keyboard, followed by (ctrl S) to save once you are happy with the results. </em>

<em>The code added in this example will fix the rendering problem in the Q at a full range of sizes. This is the same solution as the first example, but this time the code is added manually to the VTT Talk window. If there are only a few hinting commands to be added, as in this case, it is often as easy to write the code manually in the VTT Talk Window, and compiling. </em>
<h2>Category 1.</h2>
<h2>Example 2, glyph: Lowercase a, Verdana Pro Regular.</h2>
In this example, the Autohinter Light, does not recognize the middle stem in the lowercase a, and does not add any hinting to control this feature. This results in this part of the glyph, looking too light onscreen at a range of sizes, and the feature does not round consistently.

[video width="668" height="668" mp4="https://msdnshared.blob.core.windows.net/media/2016/06/ScreenCapture_01-06-2016-16.37.29.mp4"][/video]
<h2>Using the Graphical Hinting tools.</h2>
The fix can be made to the ‘a’, by adding new hinting commands, using the Graphical Hinting tools. <em>(See the steps and the animation above)</em>

<strong>(1)</strong> Choose the <strong>YInterpolate</strong> tool. With left click on the mouse held down, position the middle of the YInterpolate cursor over point 21, and drag from point 21 to point 5. With left click on the mouse held down, drag the YInterpolate<em> ‘elastic band’</em> , to select point 26, as the point to be interpolated between point 21, and point 5, as shown in the animation. This will add the following line of code to the VTT Talk.
<ul>
	<li>YInterpolate (5,26,21) <em>(note, point 26 is not yet grid-fitted)</em></li>
</ul>
<strong>(2) </strong>Right click on point 26, and drag one box to the right to choose the align to grid function. This will change the above command from a YInterpolate to a YIPAnchor command, positioning point 26 on the grid.
<ul>
	<li>YIPAnchor(5,26,21)</li>
</ul>
<strong>(3)</strong> Choose the <strong>Ylink </strong>tool from the toolbar. With the left mouse button held down, drag from point, 26, to 11. to create a YDist from point 26 to point 11
<ul>
	<li>YDist (26,11)</li>
</ul>
<strong>(4) </strong>Open the VTT Talk Window (ctrl 5) and type <strong>Res</strong>, in front of the YDist(26,11)
<ul>
	<li><strong>Res</strong>YDist (26,11) = <em>(Final code, with the Res appended manually in the VTT Talk)</em></li>
</ul>
Note that at the smallest sizes, 9 and 10ppem, the middle bar is too high causing clashing. Go to 9ppem by clicking on the glyph at this size in the size run below the main character in the Main Window, or by using the keyboard shortcut <strong>ctrl =</strong> and entering the size 9.

<strong>(5)</strong> Choose the <strong>YDelta </strong>tool from the toolbar. With the left mouse button held down, click on point, 26, and drag down by one pixel.

<strong>(6)</strong> Repeat step 5 for 10ppem

<strong>(7)</strong> Compile the VTT Talk Window (ctrl R)

<strong>(8)</strong> Save (ctrl S)
<h2>Writing the code directly into the VTT Talk Window.</h2>
The same fix can be made for the lowercase a, by writing some hinting code directly into the VTT Talk Window and compiling. This fix uses some code that calls a Function, designed to optimally position a middle feature such as the middle stem of the lowercase a. This code is supported in VTT 6.10 and can be used after the Autohinter has run, to optimally position mid bars in glyphs such as Cap H, E F, or in this case the lowercase a. One advantage of using this method, is that at 9 and 10 ppem the middle of the a is positioned correctly, thus removing the need to add any additional Deltas to correct this.

<em><strong>Important Note.</strong></em> When this Hinting command is used, and VTT Talk is compiled, you will not be able to make any further edits via the GUI. If further edits are made by using the Graphical Hinting tools, the code will be overwritten by VTT and will be lost.

(1) Open the VTT Talk Window (ctrl 5)

(2) Type the code at the end of the VTT Talk, just before the Smooth() command. For this example the code looks like this
<ul>
	<li>ResYIPDist||(5,26,11,21)</li>
</ul>
<strong>(7)</strong> Compile the VTT Talk Window (ctrl R)

<strong>(8)</strong> Save (ctrl S)

The code essentially does the same thing as in first example above. Point 5, at the beginning and point 21 at the end, are the two points, I used in the Interpolate in the first example. Points 26, and 11, are the points on the middle stem.

[video width="668" height="668" mp4="https://msdnshared.blob.core.windows.net/media/2016/06/ScreenCapture_02-06-2016-16.01.26.mp4"][/video]

In the next post in the series I will look at Categories, 2, 3, &amp; 4 relating to <em>‘fine tuning’</em> the font hinting to further improve the screen output quality.

Mike]]></content:encoded>
    </item>
    <item>
      <title>A Graphical Guide To VTT 6.10 Light Latin Autohinting</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/a-graphical-guide-to-vtt-6-10-light-latin-autohinting</link>
      <pubDate>Fri, 08 Apr 2016 14:39:56 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=541</guid>
      <description><![CDATA[VTT 6.10 now includes an Autohinter for Latin fonts. The Autohinter uses a Lightweight hinting...]]></description>
      <content:encoded><![CDATA[VTT 6.10 now includes an Autohinter for Latin fonts. The Autohinter uses a Lightweight hinting strategy that focuses on grid-fitting common heights, such as x-height, Cap Height, Ascender, Descender using <a title="CVT Table" href="https://www.microsoft.com/typography/hinting/hinttut2.htm" target="_blank">CVT (Control Value Table) </a>heights as reference, and linking across common stems, such as H crossbar, E, F, Horizontals, O, Q, C, G, Rounds, lowercase ‘e’ rounds and horizontal bar, and lowercase ‘n’, ‘o’ rounds etc. This strategy, takes advantage of <a title="DirectWrite" href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd371554(v=vs.85).aspx" target="_blank">*DirectWrite rendering</a>, allowing the inside of glyph contours to round to fractional pixels. The key heights are anchored to the a full pixel Grid, thereby maintaining consistency onscreen, in gridfitted heights of common characters, both within a font and across a font family.

<em>Note, the Autohinter Light will automatically generate a compiled and completed <a title="GLOBAL TABLES" href="https://www.microsoft.com/typography/hinting/hinttut2.htm" target="_blank">Control Program, Pre Program and Font Program.</a></em>

The following are the reduced set of Y-Direction hinting commands added automatically by the VTT 6.10 Light Latin Autohinter.
<ul>
	<li><strong>YAnchor &amp; ResYAnchor</strong></li>
	<li><strong>YIPAnchor</strong> <em>(YInterpolate followed by Yanchor)</em></li>
	<li><strong>YInterpolate</strong></li>
	<li><strong>ResYDist </strong></li>
	<li><strong>YShift</strong></li>
</ul>
For the examples below, I ran the Autohinter Light on the <strong>VTTDemo.ttf</strong> font, that ships with VTT 6.10. The following animations, of some of the control characters, for the Cap and Lowercase, shows the order of how the VTT Autohinter Light adds the basic set of Y-Direction hints. As you will see, the smaller set of hinting commands can be used to hint all of the characters in a font. Once you are familiar with this smaller set of hints, it is then easy, to edit the Autohinter output, or to add you own hinting.

The hinting approach used in the Autohinter Light, is suitable for Webfonts that will be rendered in DirectWrite. <em>*Note. The Autohinter sets the <a title="GASP Table" href="https://www.microsoft.com/typography/otspec/gasp.htm" target="_blank">GASP table </a>to always use ydirection antialiasing, for DirectWrite rendering, which allows for fractional rounding of horizontal stems.</em>

<strong>This approach does the following</strong>
<ul>
	<li>Gridfits Heights such as Cap, and x-height a full pixel grid, helping to maintain high contrast, onscreen, and height consistency across glyphs, and font family weights and styles.</li>
	<li>Allows horizontal stems to round to <em>*fractional pixels.</em></li>
	<li>Maintains the correct weight of stems, and correct proportions in the hinted glyphs.</li>
	<li>Suppresses subtle features such as overshoots, and undershoots, at lower screen sizes, and allows these features to show again, when enough pixels are available.</li>
</ul>
<em>*When Hinting for other types of Rendering, such as ClearType GDI, or black and white, that do not support fractional pixel rounding, a stricter method of <a title="Inheritence" href="https://www.microsoft.com/typography/tools/vttnotes.aspx" target="_blank">hinting using inheritance is required. </a></em>

The following animations show the graphical representation of the High Level Hinting code, (VTT Talk) added by the Autohinter. Refer to the details below each animation describing more about the hints in each glyph. This will give a good overview of the basic stem control hints, needed for a standard Latin font. Hinting can be added using the VTT 6.10 Graphical User Interface or by running the Autohinter Light, and editing the hints using the GUI, post autohinting. More detailed notes are added for the CAP H and Cap O, to explain the hinting concepts. The remainder of the glyphs follow a similar pattern. I will add additional notes when there is a new concept introduced.
<h1>Let<strong>’</strong>s start with the Cap H.</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/HintH.gif"><img class="alignnone size-full wp-image-651" src="https://msdnshared.blob.core.windows.net/media/2016/04/HintH.gif" alt="HintH" width="478" height="692" /></a>

<strong>High-level Hinting code for Cap H  </strong><em>(VTT Talk, ctrl + 5 in VTT)</em>

/* VTTTalk glyph 37, char 0x48 (H) */
/* GUI generated Mon Apr 11 03:23:49 2016 */

<strong>ResYAnchor(0,2),</strong> Moves point 0 to the Grid, using Control Value Table number 2 as reference.  (Cap Height outline measurement = 1434. cvt 2 =1434)

<strong>YShift(0,5) </strong>Shifts point 5, to a new position on the grid, relative to point 0’s new position on the grid, ensuring point 5 will also be gridfitted to Cap Height.

<strong><em>Note:</em></strong> <em>We do not need to touch all points when hinting. If two points are at the same position and make an unbroken straight line, we can use either point for hinting and the other point will travel with the hinted point, b</em><em>ecause when the hints are compiled, an instruction called ‘Interpolate Untouched Points’, keeps these two points moving together. In the example above, point 1, will travel with the hinted Point 0, and point 4 will travel with the hinted point 5, similar for the commands at the base of the Cap H.</em>

<strong>ResYAnchor(11,8) </strong>Moves point 11 to the baseline Grid, using Control Value Table number 8 as reference.  (Baseline outline measurement = 0. cvt 8 =0)

<strong>YShift(11,7) </strong>Shifts point 7, to a new position on the grid, relative to point 11, ensuring point 7 will also be gridfitted to Baseline.

<strong>YIPAnchor(0,9,11) </strong>Moves point 9, to full pixel grid, relative to point 0 &amp; point 11, which now have new gridfitted positions. This helps to keep high contrast on the bottom of the horizontal crossbar on the Cap H. The Autohinter chooses point 9 on the bottom of the horizontal bar, to interpolate, between the top and bottom of the Cap H. If point 2 was chosen, the bar would have a tendency to round down and may cause the bar to be low. It is better visually for the bar to be high as opposed to low. The bottom point is used, and if the bar cannot be centered it will be pushed up. This same strategy is used in a consistent way, for E, F, etc.

<strong>ResYDist(9,2) </strong>Links across Cap H horizontal crossbar from point 9 to point 2. This command positions point 2, relative to point 9’s new position on the grid, and allow point 2 to round to a fractional pixel. This maintains the correct weight of the horizontal bar, allowing also for a more subtle transition at break points. In rendering that does not support fractional pixels, hairlines and crossbars must break in full pixel jumps, so from 1 to 2, 2 to 3 etc. This can cause the rendering to either look too light or too heavy at the point where it breaks. Fractional rounding, can happen in DirectWrite where we have additional anti-aliasing in the y-direction, allowing for a much smoother transition at these breakpoints.

<em><strong>A note on the Res command.</strong></em>

TrueType fonts need to be hinted to render optimally onscreen. Some of these, Hints, are specific to particular rendering environments such as black-and-white or grey-scaling (anti-aliased), or ClearType/ClearType with vertical anti-aliasing rendering. The general structure of the Hints are the same for the all of the rendering environments. For example, a letterform such as an uppercase “H” has two vertical strokes and one horizontal bar, whether it is rendered in ClearType or in black-and-white.

In black-and-white rendering, the strokes of the fonts’ letterforms typically have a width that is a multiple of a full pixel, because in black-and-white rendering a pixel is either fully on or fully off. In grey-scaling and ClearType rendering, a pixel can have an intermediate shade of grey or color. In black-and-white rendering for instance, Hints will often constrain parts of the letterforms’ outlines to a full pixel boundary, while in grey-scaling and ClearType rendering the same parts of the outlines will be constrained to a fractional pixel value.

The <strong>Res</strong> addition to the command <strong>Res</strong>YDist, for example, stands for <strong>R</strong>endering<strong> E</strong>nvironment<strong> S</strong>pecific, and ensures that the appropriate rounding happens, for the various rendering environments. This saves adding additional Hinting commands if Hinting is required to work in a variety of rendering environments. I will cover this in more detail in a later post.

<strong><em>A note</em>  on the Control Value Table (<em>‘</em>cvt’)</strong>

TrueType allows control over the regularity of features through the use of values stored in the ‘cvt’ table. Control values are measurements of features, such as lowercase stems widths, and key heights such as Cap Heights and x-Height. These stems, and Heights, although similar to one another, may have slightly different outline measurements. With cvt’s the distances can be controlled so they are the same pixel width at a low resolution, and heights, can be made to be equal also at lower resolutions. At a higher resolution the control value won’t be used and the natural distance will display in the stems and heights. <em>see below for more on Overshoots and Undershoots in the Cap O example.</em>

<a href="https://msdnshared.blob.core.windows.net/media/2016/04/cvt.png"><img class="alignnone size-full wp-image-701" src="https://msdnshared.blob.core.windows.net/media/2016/04/cvt.png" alt="cvt" width="492" height="594" /></a>

<strong><em>An example of a section of the CVT Table from the VTTDemo.ttf font.</em> </strong>

To view the CVT Table, in VTT, View Menu, &gt; Control Program, or ctrl + 4
<h1>Cap O</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/HintO.gif"><img class="alignnone size-full wp-image-661" src="https://msdnshared.blob.core.windows.net/media/2016/04/HintO.gif" alt="HintO" width="478" height="692" /></a>

<strong>High-level Hinting code for Cap O </strong>

/* VTTTalk glyph 64, char 0x4f (O) */

/* GUI generated Mon Apr 11 09:02:53 2016 */

/* Y direction */

<strong>ResYAnchor(7,3)</strong> Moves point 7 to the Grid, using Control Value Table number 3 as reference.  CVT 3 = 24. (24 is the measured difference between the Square Cap Height and the Round Cap Height. At small sizes, the round cap height is made equal to the square Cap Height, and rounds to a full pixel. This is done ensure undershoots and overshoots, do not round to above the Cap Height or below the Baseline, where there are not enough pixels onscreen to show this difference. At larger sizes, when there are enough pixels, to show the difference, the undershoots and overshoots are allowed to round using the measured outline. <em>These values are calculated automatically by the Autohinter. The size at which Overshoots and Undershoots kick in, can be manually edited. I will cover this in greater detail in a later post.</em>

Fitting the overshoots and undershoots to a full pixel grid, helps to, minimize blur at small screen sizes, and keeps heights consistent onscreen between square and round characters, within a font.

<strong>ResYDist(7,23)</strong> Links across Cap O Top Y-Round, from point 7 to point 23. This command positions point 23, relative to point 7’s new position on the grid, and allow point 23 to round to a fractional pixel.

<strong>ResYAnchor(15,9) </strong>Moves point 15 to the Grid, using Control Value Table number 9 as reference. (undershoots are controlled in the same way as the overshoot above. In this case, CVT 9 = -24. (-24 is the measured difference between the Baseline of 0(zero), and the Round undershoot measurement of the Cap O, which is measured at -24 below the baseline.

<strong>ResYDist(15,31) </strong>Links across Cap O Bottom Y-Round, from point 15 to point 31. This command positions point 31, relative to point 15’s new position on the grid, and allow point 31 to round to a fractional pixel.

Smooth()
<h1>Cap A</h1>
<strong> <a href="https://msdnshared.blob.core.windows.net/media/2016/04/HintA.gif"><img class="alignnone size-full wp-image-671" src="https://msdnshared.blob.core.windows.net/media/2016/04/HintA.gif" alt="HintA" width="478" height="692" /></a></strong>

<strong>High-level Hinting code for Cap A</strong>

/* VTTTalk Unicode 0x41 (A) */
/* ACT generated Fri Apr  8 06:14:52 2016 */

/* Min and Max */
ResYAnchor(3,8)
ResYAnchor(4,2)
YInterpolate(4,1,3)
YAnchor(1)
ResYDist(1,17)
YShift(3,7)
Smooth()
<h1>Cap E</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/ezgif.com-gif-maker2.gif"><img class="alignnone wp-image-551 size-full" src="https://msdnshared.blob.core.windows.net/media/2016/04/ezgif.com-gif-maker2.gif" alt="ezgif.com-gif-maker" width="478" height="692" /></a>

<strong>High-level Hinting code for Cap E</strong>

/* VTTTalk glyph 23, char 0x45 <strong>(E)</strong> */
/* GUI generated Fri Apr  8 06:17:44 2016 */

/* Y direction */
<strong>(1) ResYAnchor(0,2) </strong>Moves point 0 to the Grid, using Control Value Table number 2 as reference.  (Cap Height outline measurement = 1434. cvt 2 =1434)

<strong>(2) ResYDist(0,3) </strong>Links across Cap E top horizontal bar, from point 0 to point 3. This command positions point 3, relative to point 2’s new position on the grid.
<strong>(3)</strong> <strong>ResYAnchor(11,8) </strong>Moves point 11 to the baseline Grid, using Control Value Table number 8 as reference.  (Baseline outline measurement = 0. cvt 8 =0)

<strong>(4)</strong> <strong>ResYDist(11,8) </strong><em>Links across Cap E lower horizontal bar from point 11 to point 8. This command positions point 8, relative to point 11’s new position on the grid.</em>
<strong>(5)</strong> <strong>YIPAnchor(0,7,11) </strong>Repositions point 7, on the Cap E Mid-Bar, relative to point 0 &amp; point 11, which now have new gridfitted positions. This command also moves point 7 to the nearest grid.
<strong>(6) ResYDist(7,4) </strong><em>Links across Cap E mid-bar from point 7 to point 4. This command positions point 4, relative to point 7’s new position on the grid.</em>
Smooth()
<h1>Cap M</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/HintM.gif"><img class="alignnone size-full wp-image-673" src="https://msdnshared.blob.core.windows.net/media/2016/04/HintM.gif" alt="HintM" width="478" height="692" /></a>

/* VTTTalk glyph 57, char 0x4d (M) */
/* GUI generated Tue Apr 12 03:43:20 2016 */

/* Y direction */
ResYAnchor(0,2)
YShift(0,11)
ResYAnchor(30,8)
YShift(30,13)
YShift(30,22)

Smooth()
<h1>Lowercase x</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/Hintx.gif"><img class="alignnone size-full wp-image-674" src="https://msdnshared.blob.core.windows.net/media/2016/04/Hintx.gif" alt="Hintx" width="478" height="692" /></a>

/* VTTTalk glyph 223, char 0x78 (x) */
/* GUI generated Tue Apr 12 04:22:20 2016 */

/* Y direction */
<strong>ResYAnchor(1,6) </strong>Moves point 1 to the Grid, using Control Value Table number 6 as reference.  (x-height outline measurement = 974. cvt 6 =974)
<strong>YShift(1,6) </strong>Shifts point 6, to a new position on the grid, relative to point 1, ensuring point 6 will also be gridfitted to x-height.
<strong>ResYAnchor(13,10) </strong>Moves point 13 to the baseline Grid, using Control Value Table number 10 as reference.  (Baseline outline measurement = 0. cvt 10 =0)
<strong>YShift(13,9) </strong>Shifts point 9, to a new position on the grid, relative to point 13, ensuring point 9 will also be gridfitted to baseline.

Smooth()
<h1>Lowercase o</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/Hinto.gif"><img class="alignnone size-full wp-image-693" src="https://msdnshared.blob.core.windows.net/media/2016/04/Hinto.gif" alt="Hinto" width="478" height="692" /></a>

/* VTTTalk Unicode 0x6f (o) */

/* ACT generated Fri Apr 8 06:14:52 2016 */

<strong>ResYAnchor(15,11)</strong> Moves point 15 to the Grid, using Control Value Table number 11 as reference.  CVT 11 = -25. (25 is the measured difference between the lowercase baseline of 0 (zero) and the lowercase round undershoot) <em>Overshoots and Undershoots are handled in the same way as the Cap examples above.</em>
<strong>ResYAnchor(7,7) </strong>Moves point 7 to the Grid, using Control Value Table number 7 as reference.  CVT 7 = 25. (25 is the measured difference between the lowercase square x-height of 974, stored in CVT 6, and the lowercase round overshoot)
<strong>ResYDist(7,23) </strong>Links across lowercase o top Y-Round, from point 7 to point 23. This command positions point 23, relative to point 7’s new position on the grid, and allows point 23 to round to a fractional pixel.
<strong>ResYDist(15,31) </strong>Links across lowercase o bottom Y-Round, from point 15 to point 31. This command positions point 31, relative to point 15’s new position on the grid, and allows point 31 to round to a fractional pixel.
Smooth()
<h1>Lowercase n</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/Hintn.gif"><img class="alignnone size-full wp-image-711" src="https://msdnshared.blob.core.windows.net/media/2016/04/Hintn.gif" alt="Hintn" width="478" height="692" /></a>

/* VTTTalk glyph 174, char 0x6e (n) */
/* GUI generated Tue Apr 12 07:39:10 2016 */

/* Y direction */
ResYAnchor(14,10)
YShift(14,5)
ResYAnchor(15,6)
ResYAnchor(19,7)
ResYDist(19,9)

Smooth()

Hopefully this gave a good overview of the smaller set of Hinting commands needed for making Webfonts. If there is more interest, I can add additional animations for other glyphs, with explanations.

In the next post I will look at how to edit the Hinting generated by the Autohinter, to fine tune the rendering for onscreen display.

cheers

Mike]]></content:encoded>
    </item>
    <item>
      <title>Preparing settings in VTT 6.10, for Hinting and Proofing Webfonts</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/preparing-settings-in-vtt-6-10-for-hinting-and-proofing-webfonts</link>
      <pubDate>Mon, 04 Apr 2016 15:14:52 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=373</guid>
      <description><![CDATA[Now that we have covered the new features this post will cover some basic setup in VTT 6.10, to...]]></description>
      <content:encoded><![CDATA[Now that we have covered the new features this post will cover some basic setup in VTT 6.10, to ensure you have the correct settings to begin hinting and proofing fonts for the Web

<span style="color: #000000;font-family: Calibri">VTT allows you to easily customize your viewing settings. When you begin Hinting, most of the work, will be previewing and proofing the hinted font glyphs, in the Main View Window. Hinting can be targeted for specific rendering environments. The illustration below, shows a typical setup, of the Main Viewing Window in VTT, for viewing, hinting, and proofing fonts for the Web. VTT 6.10 has a built in Rasterizer, that can match how fonts render in the Browser. As with any other typeface design task, a great proofing environment, is critical to ensure quality results. VTT allows you to confidently add Hints, and Proof your fonts, as you progress through the Hinting process, before installing and proofing live from within the browser.</span>
<h1>Some Notes on Lighter Hinting</h1>
<span style="font-family: Calibri">With the advent of newer rendering technologies, and better screens, Hinting has become much easier. The details in the post below will help you to set up VTT in the best way to add and proof your fonts for the Web.</span>

<span style="font-family: Calibri">In the past, for older rendering such as Black and White, complex hinting instructions, particularly x-direction hints, and additional Delta hints, were needed to strictly control the character shape onscreen. Because of the limits of a rigid pixel grid at small type sizes, the most difficult characters to render well were those with curves and diagonal strokes – especially italics, and much of this was controlled by adding hinting in the x-direction. Characters such as the lowercase 'm', in a typical Latin font, also needed to be controlled for symmetry, by using special hinting in the x-direction. </span>

<span style="color: #000000;font-family: Calibri">With the advent of newer rendering technologies, such as ClearType, the set of hinting instructions needed in a typical font, have become much simpler. Because of the increased resolution in the x-direction and accurate subpixel positioning, <i>(when rendering in DirectWrite),</i> stroke weight consistency between vertical strokes is rendered well onscreen, and is forgiving of slight variations in actual stem widths in ways that black and white full pixel rendering was not. The need for hinting in the x-direction to maintain issues of symmetry and stem consistency, are no longer necessary. The lowercase 'm', for example, will be rendered in ClearType, without the need for any x-direction hints. The three vertical stems will be render with consistent weight and even spacing. Italic fonts also benefit greatly from this increased resolution, in the x-direction, greatly reducing the amount of hinting instructions needed.</span>

<strong>The recommendation for hinting Web fonts, is to use a more Lightweight hinting strategy, using Y-Direction Hinting commands only</strong>

This simpler set of instructions, focuses on grid-fitting common heights, such as x-height, Cap Height, Ascender &amp; Descender, using CVT <i>(Control Value Table)</i> Height measurements, as reference, and linking across common stems and rounds, such as Cap H horizontal crossbar, E, F, horizontals, O, Q, C, G, Rounds, lowercase 'e' rounds and horizontal bar, and lowercase ‘<span style="color: #000000">n</span>’<span style="color: #000000">, </span>‘<span style="color: #000000">o</span>’<span style="color: #000000"> rounds etc. This strategy, takes advantage of Windows symmetric DirectWrite rendering modes. The key heights are anchored to the Grid, thereby maintaining consistency in grid-fitted Heights of common characters across a font family</span>.<span style="color: #000000"> This method of grid-fitting also helps to reduce blur, and minimizes distortion to the outline when grid-fitted. <i>I will cover this in more detail in a future post.</i></span>
<h1>Setting up VTT</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/VTTSETUP1.png"><img class="alignnone wp-image-491 size-medium" src="https://msdnshared.blob.core.windows.net/media/2016/04/VTTSETUP1-300x201.png" alt="VTTSETUP1" width="300" height="201" /></a>

<em><span style="font-family: Calibri"><span style="color: #000000">Click to view full size image.</span></span></em>

<span style="font-family: Calibri"><span style="color: #000000">Before beginning hinting,</span> to<span style="color: #000000"> match the setup shown above in the Main Window, in your own version of VTT, follow these steps to customise the View in the VTT Main Window. </span></span>

1. After opening a font in VTT, choose <strong>View &gt; Main Window (Ctrl+1)</strong> from the VTT Menu.

<a href="https://msdnshared.blob.core.windows.net/media/2016/04/MAINVIEW.png"><img class="alignnone wp-image-401 size-full" src="https://msdnshared.blob.core.windows.net/media/2016/04/MAINVIEW.png" alt="MAINVIEW" width="264" height="378" /></a>

2. Choose <strong>Display &gt; Options (Ctrl+D)</strong>

Display Options, will affect how the glyph outline and visual hinting is displayed in the Main Window. The following setup, shows the settings needed for Hinting and proofing a font, for DirectWrite in VTT. 6.10. Direct Write is the most common rendering used in most modern Web Browsers on Windows, including IE 11, Edge, Chrome and Firefox. The example here shows how I usually have the main Window setup for hinting. You can customise these to how best suits your own working style, or preference.

<a href="https://msdnshared.blob.core.windows.net/media/2016/04/DISPLAYSETTINGS.png"><img class="alignnone wp-image-411 size-full" src="https://msdnshared.blob.core.windows.net/media/2016/04/DISPLAYSETTINGS.png" alt="DISPLAYSETTINGS" width="432" height="442" /></a>

<span style="font-family: Calibri"><span style="color: #000000"><b>Display options</b> is broken up into a number of categories, under the <b><i>Glyph Visuals</i></b> tab. (<i>There are also settings for Color fonts, under the ‘Color’ Tab option. This is ouside the scope of this blog post, and is not relevent for most hinting tasks)</i></span></span>
<h1>Settings Details</h1>
<h2>VTT General</h2>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/VTTGENERAL.png"><img class="alignnone size-full wp-image-382" src="https://msdnshared.blob.core.windows.net/media/2016/04/VTTGENERAL.png" alt="VTTGENERAL" width="132" height="141" /></a>

<em>(Bottom left panel) </em>

Hide: Stroke Angle. Shows the stroke angle in Italic font. This was useful for older hinting methods, but is not normally needed.

<strong>VTT Attributes and VTT Commands in these directions. </strong>

<strong>Show:</strong> Y-direction only. (<em>See notes above): </em>To work with Y-direction Hinting tools. This setting will show or hide the hinting tools needed for Hinting, in the Toolbar in the main Window.

<a href="https://msdnshared.blob.core.windows.net/media/2016/04/toolbary1.png"><img class="alignnone wp-image-461 size-full" src="https://msdnshared.blob.core.windows.net/media/2016/04/toolbary1.png" alt="toolbary1" width="538" height="76" /></a>
<h2>Rasterizer Options</h2>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/RASTERIZEROPTIONS.png"><img class="alignnone size-full wp-image-421" src="https://msdnshared.blob.core.windows.net/media/2016/04/RASTERIZEROPTIONS.png" alt="RASTERIZEROPTIONS" width="133" height="171" /></a>

Set the VTT 6.10 built in Rasterizer, to a combination of ClearType + CT (Frac. AW) + CT (anti-aliased). This will allow for proofing inside of VTT 6.10, using DirectWrite rendering, matching how fonts render in the Browser.

<em>(Top Right Panel)</em>

Hide: sbit : Set this option to show embedded bitmaps.

Hide:  Gray scale: Set this option to rasterize with the GDI grey scale technique used by Windows 95 through Windows XP.

*Hide: ClearType Grey: Set this option to rasterize with the ClearType Gray technique introduced in Windows 8. <em>*Note: </em><span style="color: #000000;font-family: Calibri"><em>To cover all methods of rendering in DirectWrite environments, make sure to proof using this setting.</em> </span>

<strong>Show: </strong>ClearType: Set this option to rasterize with the color ClearType technique introduced in Windows XP.

Hide: CT (comp. AW): Set this option to show ClearType text with compatible widths.

Hide: CT (BGR order): Set this option to show color ClearType text with BGR subpixel order.

<strong>Show: </strong>CT (fract. AW): Set this option to show ClearType text with subpixel widths (sometimes called subpixel positioning). Works with both ClearType and ClearType Gray.

<strong>Show: </strong>CT (anti-aliased): Set this option to rasterize in ClearType with vertical antialiasing as introduced with DirectWrite. Works with both ClearType and ClearType Gray.
<h1>Design Options</h1>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/DESIGNOPTIONS.png"><img class="alignnone size-full wp-image-393" src="https://msdnshared.blob.core.windows.net/media/2016/04/DESIGNOPTIONS.png" alt="DESIGNOPTIONS" width="135" height="170" /></a>

<em>(Upper left panel)</em>

The most useful to show in this is panel are as follows.

<strong>Show:</strong> <strong>Outlines:</strong> Shows the glyph outline in the Main Window

<strong>Show: Points and Point numbers:</strong> Points and point number, are needed to be shown to add hints to a glyphs, as well as to keep track of hinting commands that references point numbers.

<strong>Show:</strong> <strong>Fewer points:</strong>  This setting makes the display of the Glyph outline in the main Window clearer, for hinting purposes, showing only the main points on the outline, that need to be referenced when hinting, and hiding off curve points.

<strong>Show:</strong> <strong>Heights</strong>: Shows common heights, such as baseline, Cap Height, X-Heights, descender, etc., as a blue line.

<strong>Show: Metrics:</strong> Displays the left and right sidebearings as a blue vertical line.

Hide: Outline Errors. Advanced setting, hidden by default.

Hide: Equiv. on-curve Advanced setting, disabled by default, and not needed for Hinting. Shows any off curve points as if they were on curve. Designates this by changing the color of the points.
<h2>Device Options</h2>
<a href="https://msdnshared.blob.core.windows.net/media/2016/04/DEVICEOPTIONS2.png"><img class="alignnone size-full wp-image-451" src="https://msdnshared.blob.core.windows.net/media/2016/04/DEVICEOPTIONS2.png" alt="DEVICEOPTIONS" width="132" height="171" /></a>

<em>(Upper middle panel)</em>

<strong>Show: Grid fit,</strong> <strong>Pixels</strong>, <strong>Grid Lines</strong> and <strong>Pixel centers</strong> are the most useful settings, to view and proof hinted font results. <strong>TIP:</strong> When working in the Main view, you can use keyboard commands to quickly toggle between some of these settings. The ‘<em>Grid Fit’</em> setting for instance, will show the glyph in the Main Window, with Hinting turned on. Toggling between the hinted and un-hinted view of the glyph you are working on in the main window is a critical part of the hinting process, to ensure, that the hinting is working as expected, and that there are no unexpected distortions introduced. You can easily toggle between the hinted and un-hinted view of the glyph in the Main Window, to compare the original outline to the hinted outline.

<strong>Tip: Toggle between the hinted and un-hinted outline</strong> = ctrl g

<strong>Tip: Toggle between the showing and hiding pixels </strong>= ctrl b

Hide: VDMX heights. For typical hinting this setting can be hidden. <em>For much more detailed information on the VDMX, <a href="https://www.microsoft.com/typography/otspec/vdmx.htm">see this link.</a></em>

Hide: <strong>Instructed metrics.</strong> This setting was typically used when hinting fonts for older rendering environments, such as black and white, when side-bearings were hinted to control spacing within the font. This setting is not needed when hinting a font for DirectWrite rendering, where hinting is not typically used in the x-direction to control sidebearings

These following settings make it easy to view and proofing the hinted glyph in the main Window. The Text string will display above the main Glyph in the Main Window. The ‘Size Run’ will display at the bottom of the main window.

<i><strong>Show:</strong> <strong>Text string.</strong> The text strings can be customised to show short samples of text such as <em>‘the quick brown fox jumps over the lazy dog’.</em> <em>The text string shown at the top of the Main Window can be customized in the Tools&gt; Options panel.</em><strong>Show:</strong> <strong>Size Run . </strong>Shows the rasterized glyph at a range of sizes. The size range shown at the bottom of the Main Window can be customized in the Tools&gt; Options panel. This is a very useful for proofing the Hinted glyphs at a range of common sizes.</i>

<strong><em>Note:</em> </strong><em>The sample ‘text string’ along with the ‘text run’ is the best place within the Main Window to proof the hinting of the font as you progress. The ‘text string’ and ‘text run’ will display to match the settings in the Display Options dialog. For example, under the Rasterizer Options, top right panel in the Display Options dialog, When ClearType + CT (frac. AW) + CT (anti-aliasied) are set, the text string will render as ClearType, Subpixel positioned Spacing, plus ClearType y-direction smoothing.</em>
<h2>VTT Attributes and VTT Commands</h2>
Visual TrueType allows you to add hinting instruction to a font via a graphical user interface. VTT shows relationships between points, connected by arrows. At a glance, you’ll know characteristics of those relationships by studying.
<ul>
	<li>The color of the arrows (green for Y direction links, red for X direction links, grey for flexible interpolations, black for shifts and strokes, and blue for strokes).</li>
	<li>Orientation of the arrowheads (X, Y, or any direction).</li>
	<li>Shape of the arrowheads (identifying the most frequent control value categories of straight stem, round stem, and any distance).</li>
	<li>Control points and their rounding methods (none, to grid, to half-grid, to double-grid, down-to-grid, and up-to-grid).</li>
	<li>Other symbols represent the presence or absence of an anchored point, a control value table (‘cvt’), or an override for a minimum distance.</li>
</ul>
You use your mouse to drag and drop arrows until the on-screen character looks its best at different sizes. For example, you can drag arrows, arrowheads, and arrow tails to change the relationships between points. By displaying pop-up menus, you can change or remove attributes such as ‘cvt’ category, ‘cvt’ number, rounding methods, and freedom vectors. Alternatively, you can add or adjust any of these relationships by typing the relevant commands in the VTT Talk window.

<strong>Recommended:</strong> <strong>Set all of the following options.</strong>

<a href="https://msdnshared.blob.core.windows.net/media/2016/04/ATTRIBUTESANDCOMMANDS.png"><img class="alignnone size-full wp-image-403" src="https://msdnshared.blob.core.windows.net/media/2016/04/ATTRIBUTESANDCOMMANDS.png" alt="ATTRIBUTESANDCOMMANDS" width="268" height="141" /></a>

<em>(Bottom middle panel &amp; Bottom Right Panel)</em>

<strong><em>Note:</em></strong><em> Disabling X-Direction Commands in the VTT General Tab, will disable these commands in the Graphical User Interface. When Hinting to target Direct Write, only Y-Direction hints are needed. If Hinting is targeted at other rendering environments, such as ClearType GDI, or Black and White, x-Direction Hinting may be needed, and can be enabled.</em>
<h2>VTT attributes</h2>
<strong>Show: Anchors: </strong>Shows an indicator when points are anchored via a YAnchor or XAnchor command.

<strong>Show: Rounding method: </strong> Adds an indicator to points to show the rounding method used on those points.

<strong>Show: CVTs: </strong>Shows a highway shield on any visual hints associated with a CVT.

<strong>Show: CVT numbers: </strong>Shows the assigned CVT number in the highway shield icon on a visual hint.

<strong>Show: Minimum distance: </strong>Shows an icon on visual hints when a minimum distance has been set.

<strong>Show:  Ppem limits: </strong>Shows an icon on Align commands when ppem limits are set.
<h2>VTT commands</h2>
<strong>Show: Links and dists: </strong>Set this option to show Link and Dist commands.

<strong>Show: Shifts: </strong>Set this option to show Shift commands.

<strong>Show: Interpolates: </strong>Set this option to show Interpolate commands.

<strong>Show: Aligns: </strong>Set this option to show Align commands.

<strong>Show: Strokes:  </strong>Set this option to show Stroke commands.

<strong>Show: Moves: </strong>Set this option to show Move commands

<strong>Show: Deltas: </strong>Set this option to show Delta commands.

Now you have VTT setup, the Hinting can begin!

The next post in the series will cover Recommendations and best practices, to achieve great results, using a Lighter Hinting approach, and a reduced set of Hinting Instructions.

cheers

Mike

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Introducing VTT 6.10, with Autohinting.</title>
      <link>https://docs.microsoft.com/archive/blogs/fontblog/364</link>
      <pubDate>Mon, 04 Apr 2016 12:10:16 GMT</pubDate>
      <dc:creator><![CDATA[fbcontrb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/fontblog/?p=364</guid>
      <description><![CDATA[Hi, Mike Duggan here. I am a Program Manager/Typographer, at Microsoft.

Today I would like to...]]></description>
      <content:encoded><![CDATA[<a href="https://msdnshared.blob.core.windows.net/media/2016/04/VTT.png"><img class="alignnone size-full wp-image-371" src="https://msdnshared.blob.core.windows.net/media/2016/04/VTT.png" alt="VTT" width="281" height="276" /></a>

Hi, Mike Duggan here. I am a Program Manager/Typographer, at Microsoft.

Today I would like to introduce some of the features in the latest version of VTT, (Visual TrueType), designed to make hinting fonts, easier and faster than ever.

The download is available <a title="VTT Download" href="https://www.microsoft.com/en-us/download/details.aspx?id=51177" target="_blank">here</a>

<em>The download can be installed as a fresh install, or as an upgrade from the last release 6.01 August 2015.</em>

Whether you have some experience with Hinting, or are new to VTT, the new version will allow you to easily add and edit hints using a combination of Autohinting and editing via the Graphical User Interface.

Over the next few weeks, I will be writing some posts to cover the following topics
<ul>
	<li>Best settings in VTT for Hinting and Proofing Webfonts</li>
	<li>Recommendations and best practices, to achieve great results using a Lighter Hinting approach to control common stems, and covering details of the reduced set of Hinting Instructions.</li>
	<li>Using the New Autohinter, to add and edit Hints, for great Webfont results, and using the new <a title="Control Value Table" href="https://www.microsoft.com/typography/hinting/hinttut2.htm" target="_blank">CVT (Control Value Table)</a> creation mode.</li>
	<li>Setting the <a title="GASP Table" href="https://www.microsoft.com/typography/otspec/gasp.htm" target="_blank">GASP table</a></li>
</ul>
The first post is to introduce the new Version of VTT, and to talk about the new features. VTT 6.10 now includes an Autohinter for Latin and East Asian fonts, that automatically generates a set of Hinting instructions for all glyphs in a font. The automatically generated Hints can easily be edited via the Graphical User Interface, or by directly editing the High Level VTT Talk code. The Autohinter makes use of a new lightweight hinting strategy, that is best suited to today’s rendering environments, such as <a title="DIRECTWRITE" href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd371554(v=vs.85).aspx" target="_blank">DirectWrite.</a>

When adding hints from scratch, instead of using the Autohinter, VTT 6.10 can now also automatically generate a ‘Control Value Table’ for Latin fonts, saving you time, so that you can begin adding Visual hints to your font straight away, without the need to measure the font, and manually fill in the relevant CVT entries.
<h2>What’s new?</h2>
<em>Version 6.10 [February, 2016 release]</em>
The following are the changes since the 6.01 [August 31, 2015 release] release of VTT:
<strong>New:</strong> Brand new Icon for VTT, &amp; new icons for the Graphical Hinting interface.
<strong>New:</strong> <strong>Autohinter for Latin and East Asian fonts.</strong> Most Autohinters generate low level hinting instructions that you cannot easily edit or improve. The new Autohinter in VTT, generates high-level hints that you can easily edit via VTT’s graphical user interface. Some details below.
<em><strong>Note:</strong> No Autohinter, including this one, is perfect; the intent is that this Autohinter works well enough for most glyphs. Autohinting for all glyphs in the font should be carefully checked and proofed, and certain glyphs may need to be re-hinted manually, either by using the Visual Hinting tools, or by editing the VTT talk. You can study the sample font VTTDemo.ttf, that ships with VTT as a reference on best practices for hinting.</em>
<strong>New:</strong> Ability to automatically generate a ‘Control Value Table’ for Latin fonts, saving you time, so that you can begin adding ‘Visual hints’ to your font straight away, without the need to measure the font, and manually fill in the relevant CVT entries.
<strong>New:</strong> Error and Warnings Limit. When you open a font, VTT will show a list of errors and warnings it detects in a font. If there are many errors and warnings in the font, this may slow down the process of opening a font file. To speed up opening time, you can set a limit on how many errors and warnings to display.
<strong>New:</strong> Legacy Compile. Set this option to ensure that your font will compile exactly the same as it did in Versions 4 and below of VTT.
<strong>New:</strong> Check box added to allow future suppression of Import binary hints message when opening a font with no source data.
<em>Various bug fixes related to performance.</em>
<h2>Light Latin Autohint</h2>
VTT 6.10 now includes an Autohinter for Latin fonts, which makes use of a new lightweight hinting strategy. The new Autohinter generates high-level hints that can easily be edited via VTT’s graphical user interface. The ease of use of the Autohinter, combined with the ease of editing, makes crafting fonts for onscreen use, faster and more intuitive then ever. The simpler set of instructions, added by the Autohinter, focuses on grid-fitting common heights, such as x-height, Cap Height, Ascender &amp; Descender heights, using CVT <em>(Control Value Table)</em> Height measurements, as reference, and linking across common stems and rounds, such as Cap H horizontal crossbar, E, F, horizontals, O, Q, C, G, Rounds, lowercase ‘e’ rounds and horizontal bar, and lowercase ‘n’, ‘o’ rounds etc. This strategy, takes advantage of <a title="symmetic rendering" href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd371554(v=vs.85).aspx" target="_blank">Windows symmetric DirectWrite rendering modes.</a> Key heights are anchored to the Grid, using <em>Control Value Table</em> references, thereby maintaining consistency in gridfitted Heights of common characters across a font family. <em>I will go delve into more detail on how to use the simpler set of instructions to achieve great quality for Webfonts, in a later post. </em>

<strong> Follow these steps to Autohint a Latin font:</strong>
1. Start Visual True Type.
2. File &gt; Open. Navigate to font file you would like to Autohint.
3. Select Font File and Open.
4. From the Tools menu, select Autohint &gt; Light Latin Autohint.
5. When Autohinting is complete choose Save from File Menu
<strong><em>Note:</em></strong> <em>No Autohinter, including this one, is perfect; the intent is that this Autohinter works well enough for most glyphs. Autohinting for all glyphs in the font should be carefully checked and proofed, and certain glyphs may need to be re-hinted manually, either by using the Visual Hinting tools, or by editing the VTT talk. Please see the sample font VTTDemo.ttf, that ships with VTT as a reference on best practices for hinting. </em>
<h2>East Asian Autohinter</h2>
VTT 6.10 also includes an Autohinter for East Asian fonts. This Autohinter makes use of a new lightweight hinting strategy that focuses on the horizontal strokes common in East Asian scripts. This strategy, takes advantage of Windows symmetric rendering modes and locks the bottom of strokes to the pixel grid while letting the top of strokes float, by using a ‘Shift’ command. This strategy balances edge contrast vs. blur and produces a good distribution of strokes with balanced counters.
<em><strong>Note:</strong> When the East Asian autohinter is run, on an EA font, the Latin portion of the font will be automatically hinted using the same hinting strategy as used by the Light Latin Autohinter.</em>
<strong> Follow these steps to Autohint an East Asian font:</strong>

1. Start Visual True Type.
2. File &gt; Open. Navigate to font file you would like to Autohint.
3. Select Font File and Open.
4. From the Tools menu, select Autohint &gt; East Asian AutoHint.
5. When Autohinting is complete choose Save from File Menu
<em><strong>Note:</strong> This simpler automatically generated instruction set will allow for easier editing by a typographer. The intent is that the Autohinter works well enough for most glyphs, leaving a smaller percentage that will need manual touch-up. These fixes might include changes to fix symmetry or proportion issues. No Autohinter, method can produce perfect results. Extensive Proofing of the Automatically generated hints, is highly recommended before shipping a font file.</em>
<em><strong>Note:</strong> On complex fonts, the progress indictor may stop updating and the Autohinter may appear to have hung. Generally, the Autohinter is still running and will complete in just a few moments. As a time reference, Autohinting a 28,000 glyph Asian font on an average laptop takes just under one minute.</em>
<h2>Control Program Only</h2>
TrueType allows control over the regularity of features through the use of values stored in the ‘CVT’ table. Control values are measurements of features, such as lowercase stem widths. These stems, although similar to one another, may have slightly different outline distances. With Cvt’s, these distances can be controlled so they are the same pixel width at a low resolution. At a higher resolution the control value won’t be used but the natural distance will display in the stems. The Control Value table doesn’t require these values to be glyph feature distances. The values are an integer and can be accessed from many TrueType instructions. The table also can be written to as well as read from other tables. Other examples of glyph and font features that can be stored in the control value table are: cap heights, x-heights, overshoot distances, ascender heights, baselines, figure heights, serif lengths and heights, italic angle, group (uppercase, lowercase, etc.) stem distances, group round distances. Other features might be: smaller group distances such as a math sign stem distance, braces, brackets, or parentheses distances.
<strong>VTT 6.10 can now automatically generate a Control Value Table for Latin Fonts.</strong> The above mentioned measurements will be automatically generated. Visual hints can then be added straight away without the need to measure the font, and manually fill in the relevant CVT entries. This makes it easy for intermediate and advanced hinters to get started on a font, saving significant setup time.

<em>Note:</em> <em>Selecting Tools&gt; Autohint &gt; Control Program Only, is similar to Tools &gt; Prepare font &gt; Import Templates method of generating tables in older versions of VTT. Selecting, Tools&gt; Autohint &gt; Control Program only, will automatically generate a compiled completed Control Program, Pre Program and Font Program.</em>
<strong>Follow these steps to Automatically Generate a Control Program</strong>

1. Start Visual True Type.
2. File &gt; Open. Navigate to font file you would like to Generate a Control Program for
3. Select Font File and Open.
4. From the Tools menu, select Autohint &gt; Control Program Only
5. When complete choose Save from File Menu
You can now begin hinting, either using the Graphical User Interface or by adding instructions in the VTT talk window and compiling.

You can study the sample font, <strong>VTTDemo.ttf,</strong> that ships with VTT 6.10 as a reference on best practices for hinting.

the next post will look at how to use the appropriate setting up VTT, when Hinting fonts for the Web.

Mike Duggan

&nbsp;]]></content:encoded>
    </item>
  </channel>
</rss>