<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Fonts on His Deeds Are Dust</title>
    <link>https://hisdeedsaredust.com/tags/fonts/</link>
    <description>Recent content in Fonts on His Deeds Are Dust</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <copyright>Paul Flo Williams</copyright>
    <lastBuildDate>Tue, 09 Oct 2012 11:56:33 +0100</lastBuildDate><atom:link href="https://hisdeedsaredust.com/tags/fonts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PANOSE in the wild</title>
      <link>https://hisdeedsaredust.com/posts/2012/panose-in-the-wild/</link>
      <pubDate>Tue, 09 Oct 2012 11:56:33 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2012/panose-in-the-wild/</guid>
      <description>&lt;p&gt;I am considering working on the &lt;a href=&#34;http://en.wikipedia.org/wiki/PANOSE&#34;&gt;PANOSE&lt;/a&gt; font matching
part of &lt;a href=&#34;http://github.com/fontmatrix/fontmatrix&#34;&gt;Fontmatrix&lt;/a&gt; because I enjoy playing with
Fontmatrix, but its idea of how PANOSE&amp;rsquo;s individual facets&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; are named or work seems to
me to be a bit wonky. For instance, it only understands the names for Latin Text facets,
and uses them even for Latin Decorative or Pictorial fonts.&lt;/p&gt;
&lt;p&gt;The first step (apart from trying to persuade my one-year-old son to go to sleep long enough
for me to even turn on the computer), is to take a look at whether improved matching or
re-classifying facilities would do any good at all, and for &lt;em&gt;that&lt;/em&gt;, I need to take a look
at font classifications in the wild.&lt;/p&gt;
&lt;p&gt;Turning to my Font Corpus database, I&amp;rsquo;ve extracted the following bare facts about PANOSE
usage, and I&amp;rsquo;m quite buoyed up by the results.&lt;/p&gt;
&lt;p&gt;From the 35420 fonts in the Corpus, I first get rid of fonts that have complete rubbish
in the PANOSE field, which means discarding fonts with:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Family Kind of &amp;ldquo;Any&amp;rdquo;(0), which means no attempt at all was made at classification. (13863 fonts).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Facet values out of range. This is generally Weight, which for some reason, perhaps
tool error, tends to have the values of 114 or 226. (409 fonts).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Family Kind &amp;gt; 5. Family Kind values up here, which would be used for non Latin,
aren&amp;rsquo;t formalised in any document I can find. (12 fonts).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Weight of &amp;ldquo;Any&amp;rdquo;(0). Weight is the only facet that is present for all values of Family Kind,
so it really ought to be set to something, even if &amp;ldquo;No Fit&amp;rdquo;(1) is the only appropriate value. (1540 fonts).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Having cleared out the rubbish, we are left with 19596 fonts, 55% of the total collection.
Of these, just over 90% are Latin Text fonts.&lt;/p&gt;
&lt;p&gt;For the Latin Text fonts, more complete classification means that more of the individual
facets are set to any value other than &amp;ldquo;Any&amp;rdquo;(0). Even &amp;ldquo;No Fit&amp;rdquo;(1) gives us some information
about the limitations of the classification system.&lt;/p&gt;
&lt;p&gt;So, how many facets are set to non-zero in our remaining fonts?&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Non-zero facets&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;No. of fonts&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;349&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1718&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;135&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1391&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6712&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;226&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;66&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8689&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Some of these facets are derived from measured values, and some of them are picked by judgement,
which may explain the somewhat uneven coverage of classifications. (And who&amp;rsquo;s going to classify
nine of the facets without doing one extra to complete the job?)&lt;/p&gt;
&lt;p&gt;I think the end result is that there are enough fonts with decent classification in the wild
to make this something worth working on. Go to sleep, baby boy!&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I call the individual numbers of a PANOSE number &amp;ldquo;facets&amp;rdquo;
to help me from over-using the word &amp;ldquo;value&amp;rdquo;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Serafettin, part two</title>
      <link>https://hisdeedsaredust.com/posts/2010/serafettin-part-two/</link>
      <pubDate>Fri, 20 Aug 2010 15:27:16 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2010/serafettin-part-two/</guid>
      <description>&lt;p&gt;Wow, that was a meaty piece of work. &lt;a href=&#34;http://serafettin.sourceforge.net&#34;&gt;Serafettin Cartoon fonts&lt;/a&gt; now builds with the latest
release of &lt;a href=&#34;http://fontforge.sourceforge.net&#34;&gt;FontForge&lt;/a&gt;, as well as CVS head, and taught me quite a bit about FontForge in the
process.&lt;/p&gt;
&lt;p&gt;Serafettin had a bunch of glyphs with self-intersection problems, and these were causing FontForge to crash on the Expand Stroke
operation. Because Serafettin uses scripts to build the different weights, it was hard to see where the problem was until I made
FontForge a lot more verbose about which glyphs it was processing.&lt;/p&gt;
&lt;p&gt;Even so, if a glyph self-intersects, it might be impossible to spot how the intersection is happening until you zoom right in and
see that what you thought was a sharp corner turns out to be a little twisted triangle of points. If the points are right on top of
each other, you won&amp;rsquo;t see the problem at any zoom level, so you&amp;rsquo;ll need to trust the Simplify operation.&lt;/p&gt;
&lt;p&gt;After all that work, I now have another FontForge bug to report. Try typing a some text ending in &amp;lsquo;+&amp;rsquo;, like &amp;lsquo;GPLv2+&amp;rsquo; into the the
TTF name fields. Save your work and observe that the UTF-7 (yes -7, not -8) encoding of the SFD turns this into &amp;lsquo;GPLv2+-&amp;rsquo;. Now read
in the SFD and see that your license field says &amp;lsquo;GPLv2+-&amp;rsquo;, and subsequent saves will add another &amp;lsquo;-&amp;rsquo; every time. Boo, hiss.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Serafettin, part one</title>
      <link>https://hisdeedsaredust.com/posts/2010/serafettin-part-one/</link>
      <pubDate>Fri, 13 Aug 2010 15:48:04 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2010/serafettin-part-one/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve recently been triaging &lt;a href=&#34;http://fontforge.sourceforge.net&#34;&gt;FontForge&lt;/a&gt; bugs on &lt;a href=&#34;http://fedoraproject.org&#34;&gt;Fedora&lt;/a&gt;, and hit a
problem with &lt;a href=&#34;https://bugzilla.redhat.com/show_bug.cgi?id=600108&#34;&gt;bug 600108&lt;/a&gt;, in which the latest version of FontForge crashes
while building &lt;a href=&#34;http://serafettin.sourceforge.net&#34;&gt;Serafettin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I patched FontForge locally, so I could identify the glyphs that caused it to crash, but I&amp;rsquo;ve now come to the conclusion that
Serafettin itself is the problem, and FontForge&amp;rsquo;s validation says as much, in these lines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Two glyphs have the same name.&lt;/li&gt;
&lt;li&gt;Two glyphs have the same unicode.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve never met these errors before. Sure enough, close examination of Serafettin reveals that there are three copies of some of the
glyphs in the font, with the same name and Unicode point. Now that Orcan has given me access to the Subversion repository, I&amp;rsquo;m
currently working on removing the incorrect copies of glyphs, before simplifying the outlines of the rest, to allow it to build
again.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Off-curve misrendering</title>
      <link>https://hisdeedsaredust.com/posts/2010/off-curve-misrendering/</link>
      <pubDate>Wed, 07 Jul 2010 18:26:15 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2010/off-curve-misrendering/</guid>
      <description>&lt;p&gt;Adam Hyde came up with a &lt;a href=&#34;http://sourceforge.net/mailarchive/forum.php?thread_name=1278361284.1728.12.camel%40esetera&amp;amp;forum_name=fontforge-users&#34;&gt;question about a misrendering of a
font&lt;/a&gt; on the
&lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/fontforge-users&#34;&gt;FontForge Users&amp;rsquo; mailing list&lt;/a&gt;. A colleague had designed a font in
FontForge which looked fine except when used in Adobe Illustrator (of unspecified version). He provided two examples of characters
whose shapes had developed distinct &amp;ldquo;ears&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Peter Baker suggested that the common feature in this case was that the first point of the contours was not on the curve. My
investigations proceeded along the same lines, and suggested that more than just these two characters were affected.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve modified the supplied font, Transmediale, to suggest how I think Illustrator will render all of the characters that I think
will be misrendered. I&amp;rsquo;ve shown the &amp;ldquo;ears&amp;rdquo; in the image below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;trans1.png&#34; alt=&#34;&amp;ldquo;Ears&amp;rdquo; in Transmediale&#34;&gt;&lt;/p&gt;
&lt;p&gt;The fix is simple enough in this case, as the start point of the contours can be changed in FontForge.&lt;/p&gt;
&lt;p&gt;A quick test suggests that &lt;a href=&#34;http://dejavu.sourceforge.net/&#34;&gt;DejaVu fonts&lt;/a&gt; may also be misrendered. We will see.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>An old video terminal, in vector form</title>
      <link>https://hisdeedsaredust.com/posts/2009/video-terminal-in-vector-form/</link>
      <pubDate>Fri, 27 Nov 2009 15:03:34 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/video-terminal-in-vector-form/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;mayterm-setupa.png&#34; alt=&#34; VT100 Setup Screen A&#34;&gt;&lt;/p&gt;
&lt;p&gt;I still have &lt;a href=&#34;http://vt100.net/vt_history#VT100&#34;&gt;VT100 terminal&lt;/a&gt;, but it&amp;rsquo;s in storage.
I figured I could pretend that it was on my desk if I made a font that looked like the
old beast, including the gaps between scan lines.&lt;/p&gt;
&lt;p&gt;Once I&amp;rsquo;d started, I needed the reverse video form of it, and the forms correctly
underlined, and double width, and double height &lt;em&gt;and&lt;/em&gt; double width. Blinking is
more problematic 😉&lt;/p&gt;
&lt;p&gt;The challenge with the double height, double width font is that the VT100 had
escape sequences that made particular character rows either display just the
top half of characters, or the bottom half. To display characters double height,
you had to put the same characters on two consecutive rows, and set the line
attributes correctly. In fact, you could make up some funky alien characters by
setting the line attributes and typing different characters on each row.&lt;/p&gt;
&lt;p&gt;In order to reproduce this effect (&lt;em&gt;yes, I&amp;rsquo;m carrying on digging&lt;/em&gt;), I had to make
an upper half font, and a lower half font. And &lt;em&gt;that&lt;/em&gt; gives me a problem with
&lt;a href=&#34;http://www.fontconfig.org&#34;&gt;Fontconfig&lt;/a&gt;, because that takes a look through fonts
as it caches them, and marks glyphs as broken if they don&amp;rsquo;t make any marks, but
they are encoded at positions which aren&amp;rsquo;t space characters in Unicode.
My &amp;ldquo;upper half&amp;rdquo; font doesn&amp;rsquo;t have any marks for the underscore glyph, and my
&amp;ldquo;lower half&amp;rdquo; font doesn&amp;rsquo;t have any marks for the double quotes, for example.&lt;/p&gt;
&lt;p&gt;There isn&amp;rsquo;t a way of telling Fontconfig that my font isn&amp;rsquo;t broken just because
it didn&amp;rsquo;t fancy making any marks for a particular glyph, so I&amp;rsquo;ll have to do some
pre-processing when generating &amp;ldquo;screen shots&amp;rdquo; of my old terminal.
I can locally configure Fontconfig to &lt;em&gt;not&lt;/em&gt; do this, but that wouldn&amp;rsquo;t help anyone else.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Resurrecting fonts</title>
      <link>https://hisdeedsaredust.com/posts/2009/resurrecting-fonts/</link>
      <pubDate>Wed, 11 Nov 2009 00:00:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/resurrecting-fonts/</guid>
      <description>&lt;figure class=&#34;align-right&#34;&gt;&lt;img src=&#34;segment14.png&#34; alt=&#34;Segment14 font&#34;/&gt;&lt;/figure&gt;
&lt;p&gt;A while ago, I recovered my old font files from some &lt;a href=&#34;https://hisdeedsaredust.com/posts/2009/not-so-super-superdisk/&#34;&gt;crufty old SuperDisks&lt;/a&gt;,
but did nothing more with them than copy them to my network storage, in the hope that &lt;em&gt;that&lt;/em&gt; is a safer home.&lt;/p&gt;
&lt;p&gt;Last weekend I was reading about the &lt;a href=&#34;http://fedoraproject.org/wiki/Category:Fonts_SIG&#34;&gt;Fedora Fonts SIG&lt;/a&gt;, and decided to bring the
old font files back to life. The Fonts SIG is concerned with packaging fonts for Fedora, but their pages have some interesting
pointers on how they might be created as well, so I grabbed an old font and explored the tools that are available.&lt;/p&gt;
&lt;p&gt;The font I picked is one I created when I was working with an old Stag PROM programmer, back in 1996. The programmer had a
&lt;a href=&#34;https://en.wikipedia.org/wiki/Starburst_display&#34;&gt;14-segment LED display&lt;/a&gt;. The real thing doesn&amp;rsquo;t look much like the clean vertical
pictures you&amp;rsquo;ll see in that Wikipeda article. The real characters are slightly oblique and there seems to be a kind of hexagonal
mesh over the top that makes the segments look like the figure at the top of this posting.&lt;/p&gt;
&lt;p&gt;I originally created the font by hand-coding the Type 1 format on a Sun workstation with Ghostscript installed, using my own tools
to transform some readable path descriptions into the encrypted form.&lt;/p&gt;
&lt;p&gt;This time, it seemed sensible to update the font to &lt;a href=&#34;https://en.wikipedia.org/wiki/OpenType&#34;&gt;OpenType&lt;/a&gt; format, and I decided to use
&lt;a href=&#34;http://fontforge.sourceforge.net&#34;&gt;FontForge&lt;/a&gt; for the job.&lt;/p&gt;
&lt;p&gt;Importing the old PFB file worked OK, and exporting is a doddle, except for FontForge complaining about overlapping segments in the
font. There aren&amp;rsquo;t any, but there are some subroutines that move back to the glyph origin, causing some empty subpaths, which
FontForge doesn&amp;rsquo;t ignore.&lt;/p&gt;
&lt;p&gt;The only other problem was my attempt to upload the font to the &lt;a href=&#34;http://openfontlibrary.org&#34;&gt;Open Font Library&lt;/a&gt;, because the upload
facility is broken. Ho hum.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the result of my hacking, a font called Segment14, released under the SIL Open Font License (OFL):
&lt;a href=&#34;segment14-1.0.tar.gz&#34;&gt;segment14-1.0.tar.gz&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
