Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > by-pkgid > efc75c1dcfa45d4b2a545c38cda30759 > files > 61

pfaedit-020312-2mdk.i586.rpm

<HTML>
<HEAD>
  <!-- Created with AOLpress/2.0 -->
  <!-- AP: Created on: 11-Feb-2002 -->
  <!-- AP: Last modified: 11-Feb-2002 -->
  <TITLE>Building Accented and other Composit Characters</TITLE>
</HEAD>
<BODY>
<H1 ALIGN=Center>
  Building Accented and other Composite Characters
</H1>
<P>
You can use the Element-&gt;Build Accented Char command to build up accented
characters (and some other composites). Or you can hold down the shift key
when invoking the menu and build slightly more general composite characters.
The accented version will not create ligatures and will not replace Alpha
with A. The composite version will do both these things. My assumption is
that ligatures (like the "fi" ligature) usually need a bit of work on the
user's part to get them to look good, in the case of "fi" the dot on the
"i" needs to be fused into the hook of the "f", and if you are careless with
the command you might destroy your work inadvertently.
<P>
What can be built?
<UL>
  <LI>
    Unicode specifies various normative character decompositions. So "Aacute"
    is defined to be an "A" with an "acute" accent centered on top. Any of these
    can be built (though if the character contains no accents it will need to
    be built with the build composite command).<BR>
    Sometimes Unicode's normative definition is not as informative as it might
    be (many of the greek accents are "unified" with latin accents that they
    don't really look like, the result is that following Unicode slavishly will
    yield the wrong character). So in some cases PfaEdit will use a slightly
    different set of characters than the normative decomposition.<BR>
    This includes:
    <UL>
      <LI>
	Latin accented characters
      <LI>
	Latin ligatures (ae, oe, fi, fl, etc)
      <LI>
	Greek accented characters
      <LI>
	Cyrillic accented characters
      <LI>
	Hebrew ligatures
      <LI>
	Arabic ligatures
      <LI>
	Fractions, digits inside parens, roman numerals, etc.
      <LI>
	The predefined Hangul characters (0xac00-0xdfaf)
    </UL>
  <LI>
    Many of the Korean Jamo are actually ligatures of other Jamo (ssangkiyoeok
    (0x1101) is composed of two kiyoeok (0x1100)). For some reason this information
    is not normative unicode, but PfaEdit is aware of it anyway and will build
    those characters if you ask it to.
  <LI>
    PfaEdit knows a few other things. It knows that Greek "Alpha" and Cyrillic
    A both look like the Latin "A" and will replace either if you ask. (as well
    as all the other similar characters in latin, greek, cyrillic, cherockee,
    etc.)
  <LI>
    Some characters are just extremely simple to build. There are a whole slew
    of characters which correspond to zero-width spaces. PfaEdit will build any
    of them. More usefully it will build any of the fixed size spaces 0x2000-0x200f,
    and the fixed sized rules 0x2010-0x2015).
  <LI>
    You may use the Element-&gt;Char Info dialog to define a ligature yourself,
    and PfaEdit will build it for you.
  <LI>
    In Adobe's CID character sets there are some pre-rotated versions of latin,
    greek and cyrillic characters. When CJK text is written vertically the convention
    is that any text in western alphabets should be displayed rotated 90&#186;
    clockwise. If you apply Build Accented Character to one of these slots it
    will find the appropriate latin letter and rotate it properly.<BR>
    If a character's name is "vertcid_&lt;cid&gt;" where &lt;cid&gt; is a decimal
    number, then it is assumed to be a vertically rotated version of the glyph
    at &lt;cid&gt;. In non-cid-keyed fonts, if a character's name is
    "vertuni&lt;uni&gt;" where &lt;uni&gt; is a four digit hex number, then it
    is assumed to be a vertically rotated version of that unicode character.
</UL>
<P>
So for each selected character in the font view (or for the current character
in the outline view), and if all the base characters and accents needed by
the character have already been created then this command will delete anything
that is currently in the foreground and put a reference to the base character
and another reference to the accent character into the foreground. So if
the current character were "&Agrave;" then a reference to "A" would be added
to it, and a reference to "`" would be centered above the "A". <BR>
If <A HREF="editmenu.html#From">Copy From</A> is set to All Fonts then any
bitmaps will have a similar process done (even in the outline character view).
<P>
Choosing accents can be a slightly tricky process. Unicode says that accented
letters should be built out of the accents in the range 0x300-0x340, but
this does not work too well in postscript. A Type1 font works better if the
accented character is in the Adobe Standard Encoding, which means either
using accents around 0x2d0 or ascii characters. Pfaedit will first attempt
to find an accent around 0x2d0, then in ascii and finally in the 0x300-0x340
range.
<P>
Not all accents should be centered above the base character, a cedilla is
(usually) centered underneath the base, while other accents need to be placed
to the left or right, or even overstruck. PfaEdit should know about proper
placement of most accents (or at least a rough approximation thereto).
<P>
Some Unicode characters contain more than one accent. Additional accents
will be treated similarly. This command can also be used to generate more
general composite characters .
<P>
Some accents (for example cedilla) are treated unexpectedly on certain letters
(different ways in different languages), so be careful of g-cedilla. &Aring;
often merges the ring into the top of the A, but here it will float above
it. <FONT COLOR="Red"><STRONG>Be alert</STRONG></FONT>.
<P>
Placing an accent above a character is surprisingly tricky. Centered accents
(like grave, acute, etc.) should not really be placed in the exact center
of the character. For instance when placing an acute accent on top of an
"a" the accent should actually go above the highest part of the "a" which
is almost but not quite in the center of the character. And when placing
an acute on top of a "k" (a rare combination, but still used) the accent
is centered on the stem of the "k". Greek accents are even more baroque.
PfaEdit knows many oddities of accent placement, but it will never know all
of them (some letters have multiple forms depending on the font, or perhaps
on the humidity and phase of the moon).
<TABLE BORDER CELLPADDING="2" ALIGN=Center>
  <TR>
    <TD><P ALIGN=Center>
      <IMG SRC="acenter.png" WIDTH="208" HEIGHT="281"><BR>
      Center point of the glyph</TD>
    <TD><P ALIGN=Center>
      <IMG SRC="ahighest.png" WIDTH="208" HEIGHT="281"><BR>
      Highest point of the glyph</TD>
  </TR>
</TABLE>
<P>
And how accents are centered depends on the accents themselves. Usually PfaEdit
will try to center an accent so that the accent's center is over the base
character's "center". But that doesn't always work either. The grave and
acute accents are usually (but not always) centered only on the bottom part
of the glyph.
<TABLE BORDER CELLPADDING="2" ALIGN=Center>
  <TR>
    <TD><P ALIGN=Center>
      <IMG SRC="aacutemid.png" WIDTH="131" HEIGHT="228"><BR>
      Midpoint of accent</TD>
    <TD><P ALIGN=Center>
      <IMG SRC="aacutebase.png" WIDTH="132" HEIGHT="225"><BR>
      Centered on base of accent</TD>
  </TR>
</TABLE>
<P>
PfaEdit gives you a minuscule amount of control over where it puts accents.
There are two preference items you can set (File-&gt;Preferences)
<UL>
  <LI>
    AccentOffsetPercent -- This allows you to control the amount of space between
    the top of the letter and the bottom of the accent (or the bottom of the
    letter and the top of the accent for accents that sink under their letters).
    This is expressed as a percentage of the em size and defaults to 6%. (In
    some cases there will be a little bit more space above the accent than that.
    All the accents from all the lower case letters should be at the same height,
    but the letter "o" is usually slightly higher than the letter "u". So all
    the lower case accents will be placed at the appropriate height for "o",
    even those over "u". A similar trick is done for upper case letters).
  <LI>
    AcuteCenterBottom -- This controls whether acute and grave (and double accute
    and grave) accents are centered on the entire glyph, or just on the bottom.
</UL>
<P>
<FONT COLOR="Red"><STRONG><SMALL>NOTE:</SMALL></STRONG></FONT> So PfaEdit
is going to do something wrong. There are just too many areas where I am
ignorant or my taste doesn't match yours or the program has a bug. I strongly
recommend that you examine all your accented characters after building them
and be prepared to adjust things.
<P>
The algorithms take some account of the italicangle, but when working on
an italic (or oblique) font PfaEdit is even more likely to do something you
don't like.
<P>
<P ALIGN=Center>
-- <A HREF="elementmenu.html">Element Menu</A> --
<A HREF="overview.html">TOC</A> -- <A HREF="editexample.html">Tutorial</A>
--
</BODY></HTML>