Code Monkey home page Code Monkey logo

bilbo's Introduction

Bilbo is a very legible calligraphic style that has a masculine feel. It can be used for more than just display. Use Bilbo in body copy that requires added warmth to a message.

Building the Fonts

The font is built using fontmake and gftools post processing script. Tools are all python based, so it must be previously installed.

To install all the Python tools into a virtualenv, do the following:

From terminal:


cd your/local/project/directory

#once in the project folder create a virtual environment. 
This step has to be done just once, the first time:

python3 -m venv venv

#activate the virtual environment

source venv/bin/activate

#install the required dependencies

pip install -r requirements.txt

Then run the this command:

cd sources
gftools builder config.yml

bilbo's People

Contributors

crystaltype avatar vv-monsalve avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bilbo's Issues

Font Production

  • Review/Adjust metrics and alignment zones
  • Adjust Vertical metrics for the update
  • Include License strings
  • Change vendor ID to GOOG
  • fsSelection bit 7
  • fsType bit 0
  • Copyright strigs
  • Bump version number
  • Build
  • CI build & test
  • FB QA
  • Regression QA
  • Visual QA
  • PR

Browser Images

OS X High Sierra Safari_11
Desktop_OS_X_High_Sierra_safari_11 1_
Windows 10 Chrome_71
Desktop_Windows_10_chrome_71 0_
Windows 10 Edge_18
Desktop_Windows_10_edge_18 0_

Font Production L1 - Update to GF Plus

  • Pull new source from DropBox
  • Inspect anchors and composite glyphs
  • Review/update OT feas
  • Review/Update Kerning (basic pairs)
  • Add sample image to repo
  • Add build instructions to repo
  • Diffenator poofs
  • PR

FB initial assessment report

Fontbakery report

Fontbakery version: 0.7.34

[15] Bilbo.ttf
๐Ÿ”ฅ FAIL: Checking file is named canonically.
--- Rationale ---

A font's filename must be composed in the following manner:
<familyname>-<stylename>.ttf

- Nunito-Regular.ttf,
- Oswald-BoldItalic.ttf

Variable fonts must list the axis tags in alphabetical order in square brackets
and separated by commas:

- Roboto[wdth,wght].ttf
- Familyname-Italic[wght].ttf


  • ๐Ÿ”ฅ FAIL Style name used in "Bilbo.ttf" is not canonical. You should rebuild the font using any of the following style names: "Thin", "ExtraLight", "Light", "Regular", "Medium", "SemiBold", "Bold", "ExtraBold", "Black", "Thin Italic", "ExtraLight Italic", "Light Italic", "Italic", "Medium Italic", "SemiBold Italic", "Bold Italic", "ExtraBold Italic", "Black Italic". [code: bad-static-filename]
๐Ÿ”ฅ FAIL: Check `Google Fonts Latin Core` glyph coverage.
--- Rationale ---

Google Fonts expects that fonts in its collection support at least the minimal
set of characters defined in the `GF-latin-core` glyph-set.


  • ๐Ÿ”ฅ FAIL Missing required codepoints: 0x00A0 (NO-BREAK SPACE), 0x2074 (SUPERSCRIPT FOUR), 0x2212 (MINUS SIGN) and 0x2215 (DIVISION SLASH) [code: missing-codepoints]
๐Ÿ”ฅ FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
--- Rationale ---

Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem
had no grid fitting but did have antialiasing. From 9-16 ppem, just grid
fitting. And fonts above 17ppem had both antialiasing and grid fitting toggled
on. The use of accelerated graphics cards and higher resolution screens make
this approach obsolete. Microsoft's DirectWrite pushed this even further with
much improved rendering built into the OS and apps.

In this scenario it makes sense to simply toggle all 4 flags ON for all font
sizes.


  • ๐Ÿ”ฅ FAIL Font is missing the 'gasp' table. Try exporting the font with autohinting enabled.
    If you are dealing with an unhinted font, it can be fixed by running the fonts through the command 'gftools fix-nonhinting'
    GFTools is available at https://pypi.org/project/gftools/ [code: lacks-gasp]
๐Ÿ”ฅ FAIL: Copyright notices match canonical pattern in fonts
  • com.google.fonts/check/font_copyright

  • ๐Ÿ”ฅ FAIL Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)"
    But instead we have got:
    "TypeSETit, LLC (c) 2011 Robert E. Leuschke ([email protected]), with Reserved Font Name "Bilbo"" [code: bad-notice-format]

  • ๐Ÿ”ฅ FAIL Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)"
    But instead we have got:
    "TypeSETit, LLC (c) 2011 Robert E. Leuschke ([email protected]), with Reserved Font Name "Bilbo"" [code: bad-notice-format]

๐Ÿ”ฅ FAIL: Font enables smart dropout control in "prep" table instructions?
--- Rationale ---

This setup is meant to ensure consistent rendering quality for fonts across all
devices (with different rendering/hinting capabilities).

Below is the snippet of instructions we expect to see in the fonts:
B8 01 FF    PUSHW 0x01FF
85          SCANCTRL (unconditinally turn on
                      dropout control mode)
B0 04       PUSHB 0x04
8D          SCANTYPE (enable smart dropout control)

"Smart dropout control" means activating rules 1, 2 and 5:
Rule 1: If a pixel's center falls within the glyph outline,
        that pixel is turned on.
Rule 2: If a contour falls exactly on a pixel's center,
        that pixel is turned on.
Rule 5: If a scan line between two adjacent pixel centers
        (either vertical or horizontal) is intersected
        by both an on-Transition contour and an off-Transition
        contour and neither of the pixels was already turned on
        by rules 1 and 2, turn on the pixel which is closer to
        the midpoint between the on-Transition contour and
        off-Transition contour. This is "Smart" dropout control.

For more detailed info (such as other rules not enabled in this snippet),
please refer to the TrueType Instruction Set documentation.


  • ๐Ÿ”ฅ FAIL The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script. [code: lacks-smart-dropout]
๐Ÿ”ฅ FAIL: Name table strings must not contain the string 'Reserved Font Name'.
--- Rationale ---

Some designers adopt the "Reserved Font Name" clause of the OFL license. This
means that the original author reserves the rights to the family name and other
people can only distribute modified versions using a different family name.

Google Fonts published updates to the fonts in the collection in order to fix
issues and/or implement further improvements to the fonts. It is important to
keep the family name so that users of the webfonts can benefit from the
updates. Since it would forbid such usage scenario, all families in the GFonts
collection are required to not adopt the RFN clause.

This check ensures "Reserved Font Name" is not mentioned in the name table.


  • ๐Ÿ”ฅ FAIL Name table entry ("TypeSETit, LLC (c) 2011 Robert E. Leuschke ([email protected]), with Reserved Font Name "Bilbo"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
  • ๐Ÿ”ฅ FAIL Name table entry ("TypeSETit, LLC (c) 2011 Robert E. Leuschke ([email protected]), with Reserved Font Name "Bilbo"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
๐Ÿ”ฅ FAIL: Checking OS/2 usWinAscent & usWinDescent.
--- Rationale ---

A font's winAscent and winDescent values should be greater than the head
table's yMax, abs(yMin) values. If they are less than these values, clipping
can occur on Windows platforms
(https://github.com/RedHatBrand/Overpass/issues/33).

If the font includes tall/deep writing systems such as Arabic or Devanagari,
the winAscent and winDescent can be greater than the yMax and abs(yMin) to
accommodate vowel marks.

When the win Metrics are significantly greater than the upm, the linespacing
can appear too loose. To counteract this, enabling the OS/2 fsSelection bit 7
(Use_Typo_Metrics), will force Windows to use the OS/2 typo values instead.
This means the font developer can control the linespacing with the typo values,
whilst avoiding clipping by setting the win values to values greater than the
yMax and abs(yMin).


  • ๐Ÿ”ฅ FAIL OS/2.usWinAscent value should be equal or greater than 943, but got 850 instead [code: ascent]
๐Ÿ”ฅ FAIL: Font contains glyphs for whitespace characters?
๐Ÿ”ฅ FAIL: Check glyphs do not have components which are themselves components.
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412


  • ๐Ÿ”ฅ FAIL The following glyphs have components which themselves are component glyphs:
    • Abreve
    • uni1EAE
    • uni1EB6
    • uni1EB2
    • uni1EA4
    • uni1EAC
    • uni1EA6
    • uni1EA8
    • Cacute
    • uni1EBE and 49 more. [code: found-nested-components]
โš  WARN: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • โš  WARN OS/2 VendorID value 'TSI ' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
โš  WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • โš  WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • โš  WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • โš  WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • โš  WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • โš  WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • โš  WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • โš  WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • โš  WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
โš  WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • โš  WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

Glyph name: percent Contours detected: 4 Expected: 5
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: at Contours detected: 4 Expected: 2
Glyph name: O Contours detected: 3 Expected: 2
Glyph name: Q Contours detected: 3 Expected: 2
Glyph name: b Contours detected: 3 Expected: 2
Glyph name: g Contours detected: 4 Expected: 2 or 3
Glyph name: p Contours detected: 3 Expected: 2
Glyph name: Ograve Contours detected: 4 Expected: 3
Glyph name: Oacute Contours detected: 4 Expected: 3
Glyph name: Ocircumflex Contours detected: 4 Expected: 3
Glyph name: Otilde Contours detected: 4 Expected: 3
Glyph name: Odieresis Contours detected: 5 Expected: 4
Glyph name: Oslash Contours detected: 4 Expected: 2 or 3
Glyph name: aogonek Contours detected: 3 Expected: 2
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 1 Expected: 2
Glyph name: edotaccent Contours detected: 2 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: uni0122 Contours detected: 0 Expected: 2
Glyph name: uni0123 Contours detected: 0 Expected: 3 or 4
Glyph name: uni0136 Contours detected: 1 Expected: 2 or 3
Glyph name: uni0137 Contours detected: 0 Expected: 2 or 3
Glyph name: uni013B Contours detected: 0 Expected: 2
Glyph name: uni013C Contours detected: 0 Expected: 2
Glyph name: uni0145 Contours detected: 0 Expected: 2
Glyph name: uni0146 Contours detected: 0 Expected: 2
Glyph name: Eng Contours detected: 0 Expected: 1
Glyph name: eng Contours detected: 0 Expected: 1
Glyph name: Omacron Contours detected: 4 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 5 Expected: 4
Glyph name: OE Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 0 Expected: 3
Glyph name: uni0157 Contours detected: 0 Expected: 2
Glyph name: Tbar Contours detected: 0 Expected: 1
Glyph name: tbar Contours detected: 0 Expected: 1
Glyph name: Uogonek Contours detected: 2 Expected: 1
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: Zdotaccent Contours detected: 1 Expected: 2
Glyph name: zdotaccent Contours detected: 1 Expected: 2
Glyph name: Ohorn Contours detected: 4 Expected: 2 or 3
Glyph name: ohorn Contours detected: 3 Expected: 2
Glyph name: Uhorn Contours detected: 2 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: uni0304 Contours detected: 0 Expected: 1
Glyph name: uni0307 Contours detected: 0 Expected: 1
Glyph name: uni030B Contours detected: 0 Expected: 2
Glyph name: uni030C Contours detected: 0 Expected: 1
Glyph name: uni0312 Contours detected: 0 Expected: 1
Glyph name: uni0326 Contours detected: 0 Expected: 1
Glyph name: uni0328 Contours detected: 0 Expected: 1
Glyph name: uni1E9E Contours detected: 0 Expected: 1
Glyph name: uni1ECC Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 4 Expected: 3
Glyph name: uni1ED0 Contours detected: 5 Expected: 4
Glyph name: uni1ED2 Contours detected: 5 Expected: 4
Glyph name: uni1ED4 Contours detected: 5 Expected: 4
Glyph name: uni1ED6 Contours detected: 5 Expected: 4
Glyph name: uni1ED8 Contours detected: 5 Expected: 4
Glyph name: uni1EDA Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EDB Contours detected: 4 Expected: 3
Glyph name: uni1EDC Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EDD Contours detected: 4 Expected: 3
Glyph name: uni1EDE Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EDF Contours detected: 4 Expected: 3
Glyph name: uni1EE0 Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EE1 Contours detected: 4 Expected: 3
Glyph name: uni1EE2 Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EE3 Contours detected: 4 Expected: 3
Glyph name: uni1EE8 Contours detected: 3 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 3 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 3 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 3 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 3 Expected: 2
Glyph name: uni1EF1 Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 1 Expected: 2
Glyph name: Eng Contours detected: 0 Expected: 1
Glyph name: O Contours detected: 3 Expected: 2
Glyph name: OE Contours detected: 3 Expected: 2
Glyph name: Oacute Contours detected: 4 Expected: 3
Glyph name: Ocircumflex Contours detected: 4 Expected: 3
Glyph name: Odieresis Contours detected: 5 Expected: 4
Glyph name: Ograve Contours detected: 4 Expected: 3
Glyph name: Ohorn Contours detected: 4 Expected: 2 or 3
Glyph name: Ohungarumlaut Contours detected: 5 Expected: 4
Glyph name: Omacron Contours detected: 4 Expected: 3
Glyph name: Oslash Contours detected: 4 Expected: 2 or 3
Glyph name: Otilde Contours detected: 4 Expected: 3
Glyph name: Q Contours detected: 3 Expected: 2
Glyph name: Tbar Contours detected: 0 Expected: 1
Glyph name: Uhorn Contours detected: 2 Expected: 1
Glyph name: Uogonek Contours detected: 2 Expected: 1
Glyph name: Zdotaccent Contours detected: 1 Expected: 2
Glyph name: aogonek Contours detected: 3 Expected: 2
Glyph name: at Contours detected: 4 Expected: 2
Glyph name: b Contours detected: 3 Expected: 2
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: edotaccent Contours detected: 2 Expected: 3
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: eng Contours detected: 0 Expected: 1
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: fi Contours detected: 2 Expected: 3
Glyph name: fl Contours detected: 1 Expected: 2
Glyph name: g Contours detected: 4 Expected: 2 or 3
Glyph name: ohorn Contours detected: 3 Expected: 2
Glyph name: p Contours detected: 3 Expected: 2
Glyph name: percent Contours detected: 4 Expected: 5
Glyph name: tbar Contours detected: 0 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: uni0122 Contours detected: 0 Expected: 2
Glyph name: uni0123 Contours detected: 0 Expected: 3 or 4
Glyph name: uni0136 Contours detected: 1 Expected: 2 or 3
Glyph name: uni0137 Contours detected: 0 Expected: 2 or 3
Glyph name: uni013B Contours detected: 0 Expected: 2
Glyph name: uni013C Contours detected: 0 Expected: 2
Glyph name: uni0145 Contours detected: 0 Expected: 2
Glyph name: uni0146 Contours detected: 0 Expected: 2
Glyph name: uni0156 Contours detected: 0 Expected: 3
Glyph name: uni0157 Contours detected: 0 Expected: 2
Glyph name: uni0304 Contours detected: 0 Expected: 1
Glyph name: uni0307 Contours detected: 0 Expected: 1
Glyph name: uni030B Contours detected: 0 Expected: 2
Glyph name: uni030C Contours detected: 0 Expected: 1
Glyph name: uni0312 Contours detected: 0 Expected: 1
Glyph name: uni0326 Contours detected: 0 Expected: 1
Glyph name: uni0328 Contours detected: 0 Expected: 1
Glyph name: uni1E9E Contours detected: 0 Expected: 1
Glyph name: uni1ECC Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 4 Expected: 3
Glyph name: uni1ED0 Contours detected: 5 Expected: 4
Glyph name: uni1ED2 Contours detected: 5 Expected: 4
Glyph name: uni1ED4 Contours detected: 5 Expected: 4
Glyph name: uni1ED6 Contours detected: 5 Expected: 4
Glyph name: uni1ED8 Contours detected: 5 Expected: 4
Glyph name: uni1EDA Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EDB Contours detected: 4 Expected: 3
Glyph name: uni1EDC Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EDD Contours detected: 4 Expected: 3
Glyph name: uni1EDE Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EDF Contours detected: 4 Expected: 3
Glyph name: uni1EE0 Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EE1 Contours detected: 4 Expected: 3
Glyph name: uni1EE2 Contours detected: 5 Expected: 3 or 4
Glyph name: uni1EE3 Contours detected: 4 Expected: 3
Glyph name: uni1EE8 Contours detected: 3 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 3 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 3 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 3 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 3 Expected: 2
Glyph name: uni1EF1 Contours detected: 3 Expected: 2
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: zdotaccent Contours detected: 1 Expected: 2 [code: contour-count]

โš  WARN: Font contains '.notdef' as its first glyph?
--- Rationale ---

The OpenType specification v1.8.2 recommends that the first glyph is the
'.notdef' glyph without a codepoint assigned and with a drawing.

https://docs.microsoft.com/en-us/typography/opentype/spec
/recom#glyph-0-the-notdef-glyph

Pre-v1.8, it was recommended that fonts should also contain 'space', 'CR' and
'.null' glyphs. This might have been relevant for MacOS 9 applications.


  • โš  WARN Glyph '.notdef' should contain a drawing, but it is empty. [code: empty]
โš  WARN: Do outlines contain any jaggy segments?
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.


  • โš  WARN The following glyphs have jaggy segments:
    • A: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • Aacute: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • Abreve: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • Acircumflex: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • Adieresis: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • Agrave: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • Amacron: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • Aogonek: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • Atilde: B<<568.0,281.0>-<560.0,277.0>-<546.0,275.0>>/L<<546.0,275.0>--<546.0,275.0>> = 8.13010235415596
    • V: L<<96.0,542.0>--<96.0,542.0>>/B<<96.0,542.0>-<89.0,543.0>-<89.0,557.0>> = 8.13010235415596 and 34 more. [code: found-jaggy-segments]
โš  WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.


  • โš  WARN The following glyphs have semi-vertical/semi-horizontal lines:
    • A: L<<197.0,298.0>--<500.0,300.0>>
    • AE: L<<557.0,31.0>--<833.0,30.0>>
    • AE: L<<771.0,649.0>--<942.0,650.0>>
    • AE: L<<923.0,0.0>--<518.0,-1.0>>
    • Aacute: L<<197.0,298.0>--<500.0,300.0>>
    • Abreve: L<<197.0,298.0>--<500.0,300.0>>
    • Acircumflex: L<<197.0,298.0>--<500.0,300.0>>
    • Adieresis: L<<197.0,298.0>--<500.0,300.0>>
    • Agrave: L<<197.0,298.0>--<500.0,300.0>>
    • Amacron: L<<197.0,298.0>--<500.0,300.0>> and 68 more. [code: found-semi-vertical]

Summary

๐Ÿ’” ERROR ๐Ÿ”ฅ FAIL โš  WARN ๐Ÿ’ค SKIP โ„น INFO ๐Ÿž PASS ๐Ÿ”Ž DEBUG
0 9 6 106 8 66 0
0% 5% 3% 54% 4% 34% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

Font Mastering

Diacritics

  • Composite glyphs need to be made out of components using anchors
  • Comb.case are missing
  • Misaligned diacritics
  • Caron.alt missing
  • Caron.alt glyphs need to be adjusted

Glyphs

  • Missing glyphs: 0x00A0 (NO-BREAK SPACE), 0x2074 (SUPERSCRIPT FOUR), 0x2212 (MINUS SIGN) and 0x2215 (DIVISION SLASH)
  • Add extreme points

OT Features

  • Ensure the OT features include everything and are working well (e.g. fi fl included)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.