groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Groff] Polytonic Greek


From: Werner LEMBERG
Subject: Re: [Groff] Polytonic Greek
Date: Tue, 18 Jan 2005 14:19:30 +0100 (CET)

>      After 1.19’s composite glyphs, polytonic Greek is broken;

Interesting.  groff, as I distribute it, doesn't have any support for
polytonic Greek.  It seems that you have a specialized version of the
devutf8 font files.  What distribution are you using?

> what previously would quite rightly render as:
>
>      echo '\[u03AF]' | groff -Tutf8
>      ί
>
> now produces:
>
>      echo '\[u03AF]' | groff -Tutf8
>      warning: can’t find special character ‘u03B9_0301’
>
>      Would  it be trivial to recreate 1.18’s behaviour under
> 1.19, is this a matter for bug-groff (or neither)?

From groff.texinfo:

   * A glyph [in a groff font file] representing more than a single
     input character will be named

          `u' COMPONENT1 `_' COMPONENT2 `_' COMPONENT3 ...

     Example: `u0045_0302_0301'.

     For simplicity, all Unicode characters which are composites must
     be decomposed maximally (this is normalization form D in the
     Unicode standard); for example, `u00CA_0301' is not a valid glyph
     name since U+00CA (LATIN CAPITAL LETTER E WITH CIRCUMFLEX) can be
     further decomposed into U+0045 (LATIN CAPITAL LETTER E) and
     U+0302 (COMBINING CIRCUMFLEX ACCENT).  `u0045_0302_0301' is thus
     the glyph name for U+1EBE, LATIN CAPITAL LETTER E WITH CIRCUMFLEX
     AND ACUTE.

   * groff maintains a table to decompose all algorithmically derived
     glyph names which are composites itself.  For example, `u0100'
     (LATIN LETTER A WITH MACRON) will be automatically decomposed
     into `u0041_0304'.  Additionally, a glyph name of the GGL is
     preferred to an algorithmically derived glyph name; groff also
     automatically does the mapping.  Example: The glyph `u0045_0302'
     will be mapped to `^E'.

   * glyph names of the GGL can't be used in composite glyph names;
     for example, `^E_u0301' is invalid.

With other words, a line

   u038F   24   0   0x038F

in devutf8/R and friends must be changed to

  u03B9_0301   24   0   0x038F

Then everything should work as before.


    Werner

reply via email to

[Prev in Thread] Current Thread [Next in Thread]