GNU Info

Info Node: (groff)Ligatures and Kerning

(groff)Ligatures and Kerning


Prev: Artificial Fonts Up: Fonts
Enter node , (file) or (file)node

Ligatures and Kerning
---------------------

   Ligatures are groups of characters that are run together.  For
example, the letters `f' and `i' can form a ligature `fi' as in the
word `file'.  This produces a cleaner look (albeit subtle) to the
printed output.  Usually, ligatures are not available in fonts for tty
output devices.

   Most POSTSCRIPT fonts support the fi and fl ligatures.  The C/A/T
typesetter that was the target of AT&T `troff' also supported `ff',
`ffi', and `ffl' ligatures.  Advanced typesetters or `expert' fonts may
include ligatures for `ft' and `ct', although GNU `troff' does not
support these (yet).

 - Request: .lg [flag]
 - Register: \n[.lg]
     The ligature mechanism can be switched on or off with the `lg'
     request; if the parameter is non-zero or missing, ligatures are
     enabled, otherwise disabled.  Default is on.  The current ligature
     mode can be found in the read-only number register `.lg' (set to 1
     or 2 if ligatures are enabled, 0 otherwise).

     Setting the ligature mode to 2 enables the two-character ligatures
     (fi, fl, and ff) and disables the three-character ligatures (ffi
     and ffl).

   "Pairwise kerning" is another subtle typesetting mechanism that
modifies the distance between a character pair to improve readability.
In most cases (but not always) the distance is decreased.
Typewriter-like fonts and fonts for terminals where all characters have
the same width don't use kerning.

 - Request: .kern [flag]
 - Register: \n[.kern]
     Kerning can be activated with the `kern' request.  If the
     parameter is non-zero or missing, enable pairwise kerning,
     otherwise disable it.  The read-only number register `.kern' is
     set to 1 if pairwise kerning is enabled, 0 otherwise.

     If the font description file contains pairwise kerning information,
     characters from that font are kerned.  Kerning between two
     characters can be inhibited by placing `\&' between them: `V\&A'.

     Note: Font File Format.

   "Track kerning" expands or reduces the space between characters.
This can be handy, for example, if you need to squeeze a long word onto
a single line or spread some text to fill a narrow column.  It must be
used with great care since it is usually considered bad typography if
the reader notices the effect.

 - Request: .tkf f s1 n1 s2 n2
     Enable track kerning for font F.  If the current font is F the
     width of every character is increased by an amount between N1 and
     N2 (N1, N2 can be negative); if the current point size is less
     than or equal to S1 the width is increased by N1; if it is greater
     than or equal to S2 the width is increased by N2; if the point
     size is greater than or equal to S1 and less than or equal to S2
     the increase in width is a linear function of the point size.

     The default unit is `z' for S1 and S2, `p' for N1 and N2.

   Sometimes, when typesetting letters of different fonts, more or less
space at such boundaries are needed.  There are two escapes to help
with this.

 - Escape: \/
     Increase the width of the preceding character so that the spacing
     between that character and the following character is correct if
     the following character is a roman character.  For example, if an
     italic `f' is immediately followed by a roman right parenthesis,
     then in many fonts the top right portion of the `f' overlaps the
     top left of the right parenthesis.  Use this escape sequence
     whenever an italic character is immediately followed by a roman
     character without any intervening space.  This small amount of
     space is also called "italic correction".


 - Escape: \,
     Modify the spacing of the following character so that the spacing
     between that character and the preceding character is correct if
     the preceding character is a roman character.  Use this escape
     sequence whenever a roman character is immediately followed by an
     italic character without any intervening space.  In analogy to
     above, this space could be called "left italic correction", but
     this term isn't used widely.


 - Escape: \&
     Insert a zero-width character, which is invisible.  Its intended
     use is to stop interaction of a character with its surrounding.

        * It prevents the insertion of extra space after an end of
          sentence character.


               Test.
               Test.
                   => Test.  Test.
               Test.\&
               Test.
                   => Test. Test.

        * It prevents interpretation of a control character at the
          beginning of an input line.


               .Test
                   => warning: `Test' not defined
               \&.Test
                   => .Test

        * It prevents kerning between two characters.

        * It is needed to map an arbitrary character to nothing in the
          `tr' request (Note: Character Translations).


automatically generated by info2www version 1.2.2.9