Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > 3ee1d34ccdcc42e4e9afc4435fe8d857 > files > 649

fontforge-1.0-0.20071002.1mdv2008.1.x86_64.rpm

<HTML>
<HEAD>
  <!-- Created with AOLpress/2.0 -->
  <!-- AP: Created on: 1-Mar-2003 -->
  <!-- AP: Last modified: 22-Feb-2007 -->
  <TITLE>Viewing and Editing truetype instructions in FontForge.</TITLE>
  <LINK REL="icon" href="ffanvil16.png">
  <LINK REL="stylesheet" TYPE="text/css" HREF="FontForge.css">
</HEAD>
<BODY>
<DIV id="in">
  <TABLE ALIGN=RIGHT>
    <TR>
      <TD><IMG SRC="ttfinstrs-view.png" WIDTH="277" HEIGHT="280"><BR>
	<IMG SRC="ttfinstrs-edit.png" WIDTH="277" HEIGHT="280"></TD>
    </TR>
  </TABLE>
  <H1 ALIGN=Center>
    Viewing and Editing truetype instructions in FontForge.
  </H1>
  <UL>
    <LI>
      <A HREF="http://developer.apple.com/fonts/TTRefMan/RM03/Chap3.html">Apple's
      overview on instructing glyphs</A>
    <LI>
      <A HREF="http://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html">Apple's
      list of truetype instructions</A>
    <LI>
      <A HREF="http://developer.apple.com/fonts/TTRefMan/RM04/Chap4.html">Apple's
      description of the truetype graphics state</A>
    <LI>
      <A HREF="http://developer.apple.com/fonts/TTRefMan/RM07/appendixA.html">Apple's
      summary of truetype instructions</A>
  </UL>
  <P>
  I shall not attempt to describe the mechanics of instructing truetype, if
  you want to understand it I refer you to the above links.
  (<A HREF="http://www.microsoft.com/typography/OTSPEC/ttinst.htm">Microsoft
  has a similar set </A>in but they are in word format).
  <P>
  This dialog shows the instructions associated with a glyph or truetype table
  (like fpgm or prep). If you move your mouse cursor over one of the instructions
  a brief help message will pop up describing that instruction. If you press
  the [Edit] button the dlg will change and you will be presented with a editable
  textarea containing the same instructions. You may modify these to your heart's
  content. Pressing the [Parse] will parse your modifications and (if they
  parse) return you to the "help" mode.
  <P>
  Instructions like MIRP may be entered either in FontForge's peculiar (but
  marginally more mnemonic) style: <CODE>MIRP[rnd,white] </CODE>or as
  <CODE>MIRP[00110]</CODE>, and <CODE>PUSHB_1</CODE> may be
  <CODE>PUSHB[000]</CODE>.
  <P>
  You may also include an stack arguments on the same line as the instruction
  and FontForge will convert them into the appropriate pushes. So...
  <BLOCKQUOTE>
    <PRE>5 SRP0
</PRE>
  </BLOCKQUOTE>
  <P>
  is equivalent to
  <BLOCKQUOTE>
    <PRE>PUSHB_1
5
SRP0
</PRE>
  </BLOCKQUOTE>
  <P>
  You may also use the expression <CODE>cvt(&lt;val&gt;)</CODE> instead of
  a number. This will be replaced by the index in the 'cvt ' table of an entry
  which is (within one em-unit of) &lt;val&gt;. So <CODE>cvt(100)</CODE> would
  return the index in 'cvt ' of 100. If there is no such entry, FontForge will
  create one.
  <P>
  When editing DELTA* instructions you might want to use the syntax:
  <BLOCKQUOTE>
    <PRE>PUSHB_3 6@12 8 1 DELTAP2
</PRE>
  </BLOCKQUOTE>
  <P>
  This means: Move point 8 by six delta-steps at 37 ppem (that's not clear
  at first glance - assuming delta_base is 9, DELTAP2 works from 25 ppem to
  25+15 ppem, in this example it's 25+12 ppem). So it's just a way of constructing
  an argument byte for DELTAP/C.
  <H2>
    <IMG SRC="editcvt.png" WIDTH="194" HEIGHT="320" ALIGN="Right">Editing the
    '<A NAME="cvt">cvt</A> ' table directly
  </H2>
  <P>
  This dialog shows the initial contents of the 'cvt ' table (before it has
  been modified by the 'prep' program). It is simply a list of signed 16bit
  values. You may change any value by clicking on it and typing a new value.
  You may add new entries (at the end) with the [change length] button.
  <P>
  (You may also use the "<CODE>cvt(&lt;val&gt;)</CODE>" notation described
  above to edit the cvt table.)
</DIV>
</BODY></HTML>