Sophie

Sophie

distrib > Mageia > 5 > x86_64 > by-pkgid > 0da03bb1805d73f1aaf1c06fe3cffe2f > files > 193

fontforge-1.0-1.20120731.9.mga5.x86_64.rpm

<HTML>
<HEAD>
  <!-- Created with AOLpress/2.0 -->
  <!-- AP: Created on: 23-Jun-2001 -->
  <!-- AP: Last modified: 21-Sep-2008 -->
  <TITLE>Stylistic Transformations on Fonts</TITLE>
  <LINK REL="icon" href="fftype16.png">
  <LINK REL="stylesheet" TYPE="text/css" HREF="FontForge.css">
</HEAD>
<BODY>
<DIV id="in">
  <H1 ALIGN=Center>
    Stylistic Transformations on Fonts
  </H1>
  <UL>
    <LI>
      <A HREF="#Embolden">Change Weight dialog</A>
    <LI>
      <A HREF="#Italic">Italic dialog</A>
    <LI>
      <A HREF="#Condense">Condense/Extend dialog</A>
    <LI>
      <A HREF="Styles.html#xheight">Change X-Height</A>
    <LI>
      <A HREF="Styles.html#changeglyph">Change Glyphs</A>
    <LI>
      <A HREF="#Smallcaps">Small Caps dialog</A>
    <LI>
      <A HREF="#SubSuper">Subscripts/superscripts dialog</A>
  </UL>
  <P>
  <P>
  The Style sub-menu provides a series of dialogs which allow you to create
  some common stylistic variations of latin fonts.
  <UL>
    <LI>
      Stems and their widths<BR>
      Modification of a Stem's width makes the font appear Bolder or Lighter
    <LI>
      Counters and their widths (a counter is the white space between stems)<BR>
      Modification of a Counter's width makes the font appear Expanded or Condensed
    <LI>
      Left and Right Side Bearings<BR>
      Behavior similar to Counter's
  </UL>
  <P>
  The results will probably always need to be examined and fixed up by the
  human eye, but they may provide a help in changing a font's attributes.
  <P>
  It "works" best on sans serif, non-Oblique fonts. 
    <HR>
  <H3>
    Bold
  </H3>
  <P>
  Bold fonts have thicker stems and are slightly more extended than normal
  fonts. In Knuth's Computers &amp; Typesetting, the bold fonts have a stem
  width that is approximately 1.6 (1.68(at 12pt)-1.5(at 5pt)) times the stem
  width of the normal font. This is very similar to the 1.75 suggested by
  Microsoft's ratio of 700/400 (700 being the numeric weight of a bold font,
  and 400 being the numeric weight of a normal font).
  <P>
  In Knuth's Computer Modern Bold Extended Roman, the "m" glyph is extended
  to 1.15 times the width of the "m" in Computer Modern Roman, and the x-height
  is 1.03 times higher.
  <P>
  <TABLE BORDER CELLPADDING="2">
    <TR>
      <TD>Font</TD>
      <TD>Ratio of Bold/Regular Stems</TD>
      <TD>Ratio of DemiBold/Regular</TD>
      <TD>Expansion</TD>
      <TD>Bold serif height/Regular serif</TD>
      <TD>Bold serif width/regular</TD>
    </TR>
    <TR>
      <TD>Arial</TD>
      <TD>1.5</TD>
      <TD></TD>
      <TD>1</TD>
      <TD></TD>
      <TD></TD>
    </TR>
    <TR>
      <TD>Times New Roman</TD>
      <TD>1.7</TD>
      <TD></TD>
      <TD>1</TD>
      <TD>1</TD>
      <TD>.98</TD>
    </TR>
    <TR>
      <TD>Computer Modern Roman</TD>
      <TD>1.68(at 12pt) - 1.5(at 5pt)</TD>
      <TD></TD>
      <TD>1.15</TD>
      <TD></TD>
      <TD></TD>
    </TR>
    <TR>
      <TD>Adobe Helvetica</TD>
      <TD>1.6</TD>
      <TD></TD>
      <TD></TD>
      <TD></TD>
      <TD></TD>
    </TR>
    <TR>
      <TD>Adobe Times</TD>
      <TD>1.56</TD>
      <TD></TD>
      <TD>1.17</TD>
      <TD>1.10</TD>
      <TD>.97</TD>
    </TR>
    <TR>
      <TD>Garamond Antiqua</TD>
      <TD></TD>
      <TD>1.5</TD>
      <TD></TD>
      <TD>1.05</TD>
      <TD>.90</TD>
    </TR>
    <TR>
      <TD></TD>
      <TD></TD>
      <TD></TD>
      <TD></TD>
      <TD></TD>
      <TD></TD>
    </TR>
  </TABLE>
  <P>
  <H3>
    Point Size
  </H3>
  <P>
  At first glance this does not seem like much of a transformation, after all
  postscript and truetype fonts can be drawn at any pointsize. But traditionally,
  as the point-size decreases the boldness (thickness of the stems) increases
  slightly, the counters and side bearings also change, and the overshoot
  increases. For metal type there were generally three drawings for a glyph
  in a given font, one for pointsizes less than 10, one for pointsizes 10,11
  and 12, and one for display sizes (above 12). Most computer vector fonts
  do not show this change, while Knuth's Computer Modern fonts have a continuum:
  <TABLE CELLPADDING="2">
    <CAPTION>
      Stem width, scaled by point size, made relative to 12pt
    </CAPTION>
    <TR>
      <TD></TD>
      <TH>17pt</TH>
      <TH>12pt</TH>
      <TH>10pt</TH>
      <TH>9pt</TH>
      <TH>8pt</TH>
      <TH>7pt</TH>
      <TH>6pt</TH>
      <TH>5pt</TH>
      <TD></TD>
      <TH>(12pt compared to cmr 12pt)</TH>
    </TR>
    <TR>
      <TH>cmr</TH>
      <TD>83%</TD>
      <TD>100%</TD>
      <TD>109%</TD>
      <TD>116%</TD>
      <TD>120%</TD>
      <TD>124%</TD>
      <TD>130%</TD>
      <TD>139%</TD>
      <TD>Computer Modern Roman</TD>
      <TD>100%</TD>
    </TR>
    <TR>
      <TH>cmti</TH>
      <TD></TD>
      <TD>100%</TD>
      <TD>106%</TD>
      <TD>112%</TD>
      <TD>115%</TD>
      <TD>122%</TD>
      <TD></TD>
      <TD></TD>
      <TD>Computer Modern Text Italic</TD>
      <TD>94%</TD>
    </TR>
    <TR>
      <TH>cmbx</TH>
      <TD></TD>
      <TD>100%</TD>
      <TD>105%</TD>
      <TD>108%</TD>
      <TD>112%</TD>
      <TD>117%</TD>
      <TD>120%</TD>
      <TD>123%</TD>
      <TD>Computer Modern Bold Extended</TD>
      <TD>170%</TD>
    </TR>
    <TR>
      <TH>cmtt</TH>
      <TD></TD>
      <TD>100%</TD>
      <TD>109%</TD>
      <TD>116%</TD>
      <TD>120%</TD>
      <TD></TD>
      <TD></TD>
      <TD></TD>
      <TD>Computer Modern Typewriter</TD>
      <TD>100%</TD>
    </TR>
    <TR>
      <TH>cmss</TH>
      <TD>99%</TD>
      <TD>100%</TD>
      <TD>102%</TD>
      <TD>109%</TD>
      <TD>113%</TD>
      <TD></TD>
      <TD></TD>
      <TD></TD>
      <TD>Computer Modern Sans Serif</TD>
      <TD>120%</TD>
    </TR>
  </TABLE>
  <!--<TABLE CELLPADDING="2">
  <CAPTION>
  Stem width, scaled by point size
  </CAPTION>
  <TR>
  <TD></TD>
  <TH>17pt</TH>
  <TH>12pt</TH>
  <TH>10pt</TH>
  <TH>9pt</TH>
  <TH>8pt</TH>
  <TH>7pt</TH>
  <TH>6pt</TH>
  <TH>5pt</TH>
  </TR>
  <TR>
  <TH>cmr</TH>
  <TD>1.9</TD>
  <TD>2.3</TD>
  <TD>2.5</TD>
  <TD>2.67</TD>
  <TD>2.75</TD>
  <TD>2.85</TD>
  <TD>3</TD>
  <TD>3.2</TD>
  <TD>Computer Modern Roman</TD>
  </TR>
  <TR>
  <TH>cmti</TH>
  <TD></TD>
  <TD>2.17</TD>
  <TD>2.3</TD>
  <TD>2.44</TD>
  <TD>2.5</TD>
  <TD>2.64</TD>
  <TD></TD>
  <TD></TD>
  <TD>Computer Modern Text Italic</TD>
  </TR>
  <TR>
  <TH>cmbx</TH>
  <TD></TD>
  <TD>3.9</TD>
  <TD>4.1</TD>
  <TD>4.2</TD>
  <TD>4.37</TD>
  <TD>4.57</TD>
  <TD>4.67</TD>
  <TD>4.8</TD>
  <TD>Computer Modern Bold Extended</TD>
  </TR>
  <TR>
  <TH>cmtt</TH>
  <TD></TD>
  <TD>2.3</TD>
  <TD>2.5</TD>
  <TD>2.67</TD>
  <TD>2.75</TD>
  <TD></TD>
  <TD></TD>
  <TD></TD>
  <TD>Computer Modern Typewriter</TD>
  </TR>
  <TR>
  <TH>cmss</TH>
  <TD>2.71</TD>
  <TD>2.75</TD>
  <TD>2.8</TD>
  <TD>3</TD>
  <TD>3.12</TD>
  <TD></TD>
  <TD></TD>
  <TD></TD>
  <TD>Computer Modern Sans
  Serif
  <TR>
  <TH>cmssi</TH>
  <TD></TD>
  <TD></TD>
  <TD>2.8</TD>
  <TD></TD>
  <TD></TD>
  <TD></TD>
  <TD></TD>
  <TD></TD>
  <TD>Computer Modern Slanted Sans Serif</TD>
  </TR></TD>
  </TR>
  </TABLE>-->
  <P>
  <IMG SRC="CaslonOriginality.png" WIDTH="435" HEIGHT="300" ALIGN="Right">
  <P>
  To the left is an example of the same word (taken from a font specimen sheet)
  printed at 3 different point sizes (8,12 and 24) and then scaled up to the
  same size. The most obvious difference is that the glyphs are proportionally
  wider at the smaller pointsizes. It is less apparent that the stems of the
  letters are different:
  <TABLE CELLPADDING="2">
    <TR>
      <TD></TD>
      <TH>24pt</TH>
      <TH>12pt</TH>
      <TH>8pt</TH>
    </TR>
    <TR>
      <TD>stem of the "n" (compared to 12pt)</TD>
      <TD>89%</TD>
      <TD>100%</TD>
      <TD>117%</TD>
    </TR>
    <TR>
      <TD>counter of the "n" (compared to 12pt)</TD>
      <TD>104%</TD>
      <TD>100%</TD>
      <TD>89%</TD>
    </TR>
    <TR>
      <TD>width of "originality" (compared to 12pt)&nbsp;&nbsp;&nbsp;&nbsp;</TD>
      <TD>93%</TD>
      <TD>100%</TD>
      <TD>104%</TD>
    </TR>
  </TABLE>
  <P>
  <BR Clear=All>
  <H3>
    SmallCaps
  </H3>
  <P>
  A SmallCaps font is made by <A HREF="transform.html">scaling</A> the capital
  letters approximately to the x-height (so that they are the same height as
  lower case letters without ascenders) and then adjusting the stem widths
  (emboldening) so that they too will match stem widths of the lower case.
  <H3>
    Italic
  </H3>
  <P>
  The Italic transformation contains at least five parts: A change in the
  letterforms of the lowercase letters, a slight decrease in x-height, a
  <A HREF="transform.html">skew</A>, and a condensation and a narrowing of
  the vertical stems..
  <TABLE BORDER CELLPADDING="2">
    <TR>
      <TD></TD>
      <TD>Italic Angle</TD>
      <TD>Condensation</TD>
      <TD>Stem width change</TD>
      <TD>X-Height change</TD>
    </TR>
    <TR>
      <TD>Computer Modern Text Italic</TD>
      <TD>14&#186;</TD>
      <TD>91%</TD>
      <TD>94%</TD>
      <TD>100%</TD>
    </TR>
    <TR>
      <TD>Times New Roman</TD>
      <TD>16&#186;</TD>
      <TD>100%</TD>
      <TD>91%</TD>
      <TD>96%</TD>
    </TR>
    <TR>
      <TD>Adobe Times</TD>
      <TD>15</TD>
      <TD>100%</TD>
      <TD>92%</TD>
      <TD>95%</TD>
    </TR>
  </TABLE>
  <P>
  Letterform changes in Galliard:
  <IMG SRC="ItalicCompGalliard.png" WIDTH="328" HEIGHT="33">
  <P>
  Letterform changes in
  Caslon:<IMG WIDTH="368" HEIGHT="48" SRC="ItalicCompCaslon.png"> <BR>
  <SMALL>(These glyphs have been deskewed to display the shape transformation
  better.)</SMALL>
  <P>
  Cyrillic Letterform
  changes:<IMG WIDTH="272" HEIGHT="45" SRC="CyrilItalicComp.png"> <BR>
  <SMALL>(These glyphs are also deskewed.)</SMALL>
  <P>
  This is not a complete list, but it shows most of the salient features of
  such a transformation.
  <H3>
    Oblique
  </H3>
  <P>
  The Oblique transformation is a simple <A HREF="transform.html">skew</A>,
  <TABLE BORDER CELLPADDING="2">
    <TR>
      <TD>Computer Modern Slanted Sans Serif</TD>
      <TD>9.5&#186;</TD>
    </TR>
    <TR>
      <TD>Arial Italic (actually an oblique)</TD>
      <TD>12&#186;</TD>
    </TR>
    <TR>
      <TD>Adobe Helvetica Oblique</TD>
      <TD>12&#186;</TD>
    </TR>
    <TR>
      <TD></TD>
      <TD></TD>
    </TR>
  </TABLE>
  <H3>
    Extended/Condensed
  </H3>
  <P>
  In these two transformations the stem width is held constant but the horizontal
  counter sizes and side bearings are increased (or decreased for condensed).
  <H3>
    The <A NAME="Embolden">Change</A> Weight
    dialog<IMG SRC="ChangeWeight.png" WIDTH="332" HEIGHT="281" ALIGN="Right">
  </H3>
  <P>
  The Change Weight dialog starts out by stroking the glyph (Element-&gt;Expand
  Stroke) and removing the internal contour. This means that each stem in the
  glyph will now be wider by the number of em units specified at the top of
  the dialog. Of course, this number may be negative, in which case you will
  be making a lighter, rather than a bolder variant of the glyph.
  <P>
  You may find that in some cases the <A HREF="Styles.html#changeglyph">Change
  Glyph </A>dialog will do a better job of emboldening or thinning a font.
  Instead of increasing all stems by the same fixed amount it will increase
  the thickness of each stem proportionate to its current thickness.
  <P>
  <IMG SRC="BoldHiraDA.png" WIDTH="270" HEIGHT="270" ALIGN="Left">For CJK fonts,
  with complex shapes but without the constraint of the latin baseline and
  cap height, this expansion is probably enough. The image at right shows the
  Hiragana DA syllable -- the original glyph shape is in the background, and
  the expanded shape is in the foreground.<BR Clear=All>
  <P>
  However if we do that to a latin (or Greek, or Cyrillic) glyph the result
  is rather odd because the glyph no longer rests on the baseline, and also
  extends above the cap-height (or x-height, or whatever line bounds this
  particular glyph).
  <TABLE BORDER CELLPADDING="2">
    <TR>
      <TD><P ALIGN=Center>
	<IMG SRC="BexpandCJK.png" WIDTH="125" HEIGHT="217"></TD>
      <TD><P ALIGN=Center>
	<IMG SRC="BexpandLCGsquish.png" WIDTH="154" HEIGHT="218"></TD>
      <TD><P ALIGN=Center>
	<IMG SRC="BexpandLCG.png" WIDTH="176" HEIGHT="218"></TD>
      <TD><IMG SRC="BexpandBigSerifs.png" WIDTH="213" HEIGHT="236"></TD>
    </TR>
    <TR VALIGN="Top">
      <TD>Here the glyph has been expanded as if it were a CJK glyph. Note that
	it now extends below the baseline and above the cap height. That is not good.</TD>
      <TD>Here the glyph has been expanded as before, but the bottom stem has been
	moved up just enough so that it now rides on the base line, and the top stem
	has been moved down so it sits on the cap height.
	<P>
	But the counters are now much narrower than they were in the original glyph,
	and the left and right side bearings have become squeezed.</TD>
      <TD>In the final example, the glyph is expanded, the top and bottom stems
	moved appropriately, the side bearings restored to their original size, and
	the internal counters expanded to be closer to their original size.</TD>
      <TD>Now consider the case of a serifed font. The serifs on the B above have
	become huge, disproportionally bigger than they were in the original glyph.</TD>
    </TR>
  </TABLE>
  <P>
  <IMG SRC="ChangeWeight.png" WIDTH="332" HEIGHT="281" ALIGN="Left">Going back
  to the original dialog. The first field specifies the amount by which each
  stem should get bigger.
  <P>
  The radio buttons let you choose which method to use. CJK simply expands
  the glyph and leaves it at that. LCG expands the glyph and then forces it
  between the baseline and caps/x-height. Auto will chose which of those methods
  to apply. Custom will basically use the LCG method but allows you to specify,
  manually, what the interesting regions are in this particular glyph.
  <P>
  Any point above or on "Top Hint" will be moved down. Or if a point is on
  a hint which surrounds "Top Hint" it will also be moved down. (Points on
  the top stem of "B")
  <P>
  Any point below or on "Bottom Hint" will be moved up. Or if a point is on
  a hint which surrounds "Bottom Hint" it will also be moved up. (Points on
  the bottom stem of "B")
  <P>
  Any point which is on a hint which falls somewhere between Top Zone and Bottom
  Zone will be fixed where it is. (Points on the middle stem of "B").
  <P>
  Any point which is Serif Height above the "Bottom Hint" (or Serif Height
  below Top Hint) will remain where it is, meaning that some simple serifs
  will not be expanded to an inappropriate size.
  <P>
  Any other points will be interpolated between the points which move (rather
  like the TrueType IUP instruction -- indeed, the process of making a glyph
  bolder is very like instructing a glyph).
  <P>
  [] Cleanup Self Intersect has the same meaning as the same field in the Expand
  Stroke dialog.
  <P>
  And for the counters, &lt;&gt; Squish will result in the small counters that
  come from expanding the glyph without doing anything to the counters,
  &lt;&gt;Retain will attempt to retain the counters, and &lt;&gt;Auto will
  Squish CJK glyphs and Retain LCG glyphs.
  <H2>
    <A NAME="Italic">Italic</A> dialog
  </H2>
  <P>
  Let me reiterate that the italic transformation is quite different and much
  more complex than the oblique transformation. Oblique fonts are made by the
  same simple mathematical operation applied to the entire font. The italic
  transformation can be different for each glyph.
  <P>
  Let me further add that FontForge will never be able to do everything that
  should be done to make a good italic font from an upright font. It may provide
  a helpful starting point. Some of my friends who know more about typography
  than I have urged me not to write this dialog, saying that each italic font
  should be made by hand, and there is much truth to their view. I made the
  dialog anyway because I found it interesting to do so. Be warned: It isn't
  complete. You need to examine what it has done and be prepared to redo many
  characters (especially lower case letters) which it has not been able to
  adapt.
  <P>
  The complexities of italic design stem from its origin. The Latin alphabet
  as we now know it evolved over time. The upper case letters come from the
  style the Romans used when carving inscriptions on their monuments. The lower
  case letters come from a monastic script style, uncials, which were later
  paired with the monumental capitals. The italic hand was another script,
  initially monocase. Just as the lower case letters come from a different
  stylistic tradition than the upper case (and hence look markedly dissimilar)
  so the italic lower case comes from yet another tradition and looks different
  from upright forms. Italic upper case were a much later addition and are
  also based on the monumental capitals.
  <P>
  The italic lower case is
  <UL>
    <LI>
      slanted -- this is extremely obvious (so obvious that when I compare upright
      and italic glyphs I always deslant the italic to make other differences more
      visible)
    <LI>
      condensed -- less obvious. Generally it will be condensed by about 90% which
      isn't noticeable unless you look hard. Stems may be condensed at a different
      percentage than counters (indeed, different stems may be condensed differently,
      but fontforge doesn't support that because I don't find any consistency in
      behavior to emulate).
    <LI>
      smaller x-height -- because a slanted line that reaches from baseline to
      a given height is longer than the corresponding vertical line, it will also
      appear (to the eye) to be slightly higher. To correct for this optical illusion,
      the x-height of an italic font will generally be a little lower than the
      xheight of its companion roman font. Note -- if the xheight changes, you
      should adjust the BlueValues (and perhaps the FamilyBlues) with the
      <A HREF="fontinfo.html#Private">Font Info dialog</A>.
    <LI>
      more flowing -- This may be extremely
      obvious<IMG SRC="wItalic.png" WIDTH="68" HEIGHT="24">or more subtle -- in
      some fonts even the apparently straight sides of "l" will have a slight curve
      to them.
    <LI>
      different serifs -- The baseline serifs for the last stem on a glyph change
      <IMG SRC="BottomSerif.png" WIDTH="68" HEIGHT="24">, while those of intermediate
      stems become degenerate<IMG SRC="FlatSerif.png" WIDTH="49" HEIGHT="24">
    <LI>
      different letterforms -- Some letters simply have different shapes in italic:
      <IMG SRC="fItalic.png" WIDTH="68" HEIGHT="26"><IMG SRC="aItalic.png" WIDTH="68"
	  HEIGHT="24"><IMG SRC="u433Italic.png" WIDTH="68" HEIGHT="24"><IMG SRC="u432Italic.png"
	  WIDTH="68" HEIGHT="24">
  </UL>
  <P>
  The italic upper case is also slanted (and by the same angle), generally
  condensed (but often less so than the lower case), and usually its serifs
  and letter forms do not change significantly (though there can be exceptions:
  <IMG SRC="ucEItalic.png" WIDTH="68" HEIGHT="24">)
  <P>
  In typographic tradition serifed fonts have a paired italic font, while
  sans-serif fonts have an oblique font.
  <P>
  <IMG SRC="ItalicDlg.png" WIDTH="406" HEIGHT="715" ALIGN="Right">The italic
  dialog attempts to give you control over as much of this as fontforge thinks
  it can do. The dialog displays the steps mentioned above, but backwards.
  <P>
  First there are a series of check boxes for gross letterform changes. The
  "a" glyph generally turns into a something that looks like the "d" glyph
  without the ascender. The "f" glyph has (at least) two variants -- in one
  the curved top is duplicated at the bottom, and in the other the main stem
  is extended below the baseline but the serif is removed.
  <P>
  In actual practice these changes are more complex. If examined closely the
  bottom part of the f doesn't look precisely like the top. FontForge isn't
  up to such subtleties however.
  <P>
  The [] f checkboxes control additional characters which are similar to "f",
  "long-s" for example, also the "fi", "fl", "ff", "ffi", "ffl", "longs_longs",
  "longs_t", etc. ligatures. FontForge determines what glyphs it applies to
  by examining the glyph name and unicode encoding; it does NOT do a sophisticated
  analysis of the glyph's shape.
  <P>
  This does not exhaust the list of changes that could or should be done --
  Merely the list of what FontForge thinks it can do. There should also be
  checkboxes for:
  <IMG SRC="eItalic.png" WIDTH="68" HEIGHT="24"><IMG SRC="vItalic.png" WIDTH="68"
      HEIGHT="24"><IMG SRC="wItalic.png" WIDTH="68" HEIGHT="24"><IMG SRC="u432Italic.png"
      WIDTH="68" HEIGHT="24"><IMG SRC="u433Italic.png" WIDTH="68" HEIGHT="24">
  and many more.
  <P>
  FontForge will change serifs in various places.
  <UL>
    <LI>
      baseline serifs -- The final stem of a glyph almost always undergoes a serif
      transformation at the baseline. Previous stems generally have their serifs
      become degenerate (flat lines)<IMG SRC="mItalic.png" WIDTH="108" HEIGHT="31">.
      This transformation almost always happens.
    <LI>
      xheight serifs -- This transformation frequently happens.
    <LI>
      ascender serifs -- This transformation happens occasionally. Sometimes the
      serif becomes very swash, somethings nothing changes.
    <LI>
      descender serifs -- Usually serifs on descenders degenerate into flat lines.
    <LI>
      diagonal serifs -- This transformation usually happens
      <IMG SRC="xItalic.png" WIDTH="68" HEIGHT="24">
  </UL>
  <P>
  When a serif becomes degenerate (as the first two do in the "m" above) they
  often become flat with the baseline, but sometimes they will have a slant
  to them.
  <P>
  Next is a matrix of compression factors (expressed as percentages). You can
  control left and right side bearings, as well as stem and counter widths.
  You may specify different values for lower case, upper case and symbols.
  <P>
  Finally we come to the italic angle. This will generally be between -10 and
  -15 degrees.<BR CLEAR=ALL>
  <H2>
    <A NAME="Condense">Condense</A>/Extend
    dialog<IMG SRC="CondenseExtend.png" WIDTH="321" HEIGHT="193" ALIGN="Right">
  </H2>
  <P>
  This dialog allows you to change counter sizes without changing stem sizes
  (in theory. It doesn't work too well with diagonal stems). You can make counters
  bigger or smaller by a percentage, or by adding a fixed amount to them.
  <P>
  If the font has and Italic Angle specified in Font Info, then fontforge will
  first unskew the glyph in the hopes of getting some vertical stems, then
  Condense it, and the reskew it.<BR CLEAR=ALL>
  <H2>
    <A NAME="xheight">Change X-Height</A>
    dialog<IMG SRC="ChangeXHeightDlg.png" ALIGN="Right" WIDTH="258" HEIGHT="188">
  </H2>
  <P>
  This changes the x-height of a font. The dialog shows the current x-height
  (or what it thinks is the current x-height), and you can chose an new value
  for it. If the font has serifs and you don't want the serifs to change in
  height then specify the current serif height. If you do want the serifs to
  change, then set this field to 0.<BR Clear=ALL>
  <H2>
    <A NAME="changeglyph">Change Glyphs</A>
    dialog<IMG SRC="ChangeGlyph1Dlg.png" ALIGN="Right" WIDTH="472" HEIGHT="242">
  </H2>
  <P>
  The change glyphs dialog allows you to do a number of changes to all the
  currently selected glyphs. It can
  <UL>
    <LI>
      Increase or decrease the stem size (making the font bolder or less bold)
    <LI>
      Change the size of horizontal counters (Condense/Extend)
    <LI>
      Manipulate alignment zones with respect to one another (Change the x-height)
  </UL>
  <P>
  The dialog has three panes; each controls one of these funtions.
  <P>
  The first dialog affects the stem width (or height, as the case may be).
  In most cases you will want to scale horizontal and vertical stems by the
  same proportion, so there is a check box to fix them together.
  <P>
  Generally you will also want to control diagonal stems to, but there are
  still times when the algorithm is less than perfect.
  <P>
  Generally a proportional scale is more appropriate than adding a fixed amount
  to each stem -- at least for Latin glyphs. But there may be cases where you
  do what to add a fixed amount.
  <P>
  There are a few restrictions if you specify an additive amount here (again
  due to imperfections of the algorithm). The additive amounts must have the
  same sign for both horizontal and vertical stems (both negative, both zero,
  or both positive). And the ratio of the two can't be more than 4. 
    <HR>
  <P>
  <IMG SRC="ChangeGlyph2Dlg.png" WIDTH="472" HEIGHT="292" ALIGN="Right">You
  have various options for controlling horizontal contours. For monospace fonts
  (or CJK fonts) you probably want to select the first option. For proportional
  Latin fonts, select one of the other two. 
    <HR Clear="ALL">
  <P>
  <IMG SRC="ChangeGlyph3Dlg.png" WIDTH="472" HEIGHT="407" ALIGN="Right">Latin
  glyphs are asymetric in their behavior along the horizontal and vertical
  axes. Vertically glyphs are aligned at certain fixed heights (baseline, x-height,
  cap-height, etc.), while horizontally there are no corresponding alignment
  zones. So the vertical part of this dialog looks quite different from the
  horizontal.
  <P>
  In CJK glyphs it may make sense to control vertical glyphs.
  <P>
  But in latin it makes more sense to map alignment zones. Here there is a
  overall (default) scaling factor. If you don't adjust the zones yourself
  then changing the scale factor will change the "Resultant Y Position" by
  the obvious amount.<BR CLEAR=ALL>
  <H2>
    <A NAME="Smallcaps">Small Capitals</A>
    dialog<IMG SRC="SmallcapsDlg.png" ALIGN="Right" WIDTH="471" HEIGHT="318">
  </H2>
  <P>
  This dialog allows you to create a series of small caps glyphs. As the dialog
  says, it is unlike most commands in that it does not change the selected
  glyphs, instead it uses them to decide what glyphs to create (or if the glyphs
  already exist, what glyphs to change).
  <P>
  So if you select "A" FontForge will create a glyph named "a.sc" copy the
  outlines of "A" into that glyph, and then modify them. If you select lower
  case "a", FontForge will again create "a.sc" and will copy the outlines of
  upper case "A".
  <P>
  FontForge will also create two lookups, one which maps upper case letters
  to small caps variants, and the other which maps lower case letters to the
  small caps glyph. These will be bound to the "c2sc" and "smcp" features
  respectively.
  <P>
  OpenType supports two different variants of small caps, the normal small
  caps, and something called petite caps. Petite caps should be smaller than
  small caps (the example given in the opentype docs is for a font with a small
  x-height, small caps will be bigger than the x-height and petite caps will
  be at the x-height). Like small caps, there are two features for petite caps:
  "c2pc" and "pcap" (capital to petite caps and lowercase to petite caps).
  <P>
  If you turn on the <CODE>[] Create small caps variants for symbols</CODE>
  checkbox, then any selected symbols will also be converted. However most
  symbols don't have upper and lower case variants (one could argue that digits
  do, but I shall ignore that complication here), so each selected symbol glyph
  will get both feature mappings attached to it. Furthermore, symbols seem
  to use a different glyph extension so the created glyphs will be
  "nine.taboldstyle" rather than "nine.sc".
  <P>
  The default behavior is to transform the outlines by scaling the upper case
  outlines so that the cap height becomes the small cap height, and scaling
  the stems so that the upper case stem width becomes the lower case stem width.
  Often the small cap height will be a little taller than the x-height -- though
  the exact value will change from font to font -- the x-height is as good
  a default as any. If you do not like the default behavior you have all the
  options of the <A HREF="#changeglyph">Change Glyphs </A>dialog to play with.
  <P>
  <FONT COLOR="Red"><STRONG>Note: </STRONG></FONT>The default sizes are the
  same for both small caps and petite caps. If you want both features you will
  need to change settings for at least one of them!<BR CLEAR=ALL>
  <H2>
    <A NAME="SubSuper">Subscipt</A>/Superscript
    dialog<IMG SRC="SubSuperDlg.png" WIDTH="526" HEIGHT="307" ALIGN="Right">
  </H2>
  <P>
  There are several OpenType features which produce small variants of standard
  glyphs. Often the stems are scaled differently (made bolder) from the remainder
  of glyph.
  <P>
  As with the previous dialog this one does not modify the selected glyphs.
  Instead it uses their outlines to create new glyphs (with the indicated glyph
  extension) and creates a lookup mapping the original glyph to the new glyph.
  <P>
  So in the example at right, if you selected all the digits, then FontForge
  would create a new set of glyphs named "zero.superior", "one.superior" ...
  "nine.superior". It would create a new lookup bound to the feature "sups"
  which would map "zero" to "zero.superior", etc. By default each new glyph
  will be scaled down to be 2/3<SUP>rd</SUP>s the original size, but the stems
  would only be scaled by 3/4 (so the glyph will look proportionately darker).
  Finally each new glyph will be moved up by 450 em-units. Again if you don't
  like these defaults you have all the options of the
  <A HREF="#changeglyph">Change Glyphs</A> dialog to play with.<BR CLEAR=ALL>
  <H3>
    <A NAME="Caveat">Caveat</A>
  </H3>
  <BLOCKQUOTE ID="lit">
    Then the bowsprit got mixed with the rudder sometimes,<BR>
    A thing as the Bellman remarked<BR>
    That frequently happens in tropical climes,<BR>
    When a vessel is, so to speak, "Snarked".
    <P align=right>
    <EM>The Hunting of the Snark</EM>, Lewis Carroll
  </BLOCKQUOTE>
  <P>
  <IMG SRC="ka-change.png" WIDTH="247" HEIGHT="139" ALIGN="Right">These commands
  are not perfect. If there just isn't room in the glyph for the desired
  transformation contours may overlap. Do look at your results and be prepared
  to fix them up.
</DIV>
</BODY></HTML>