groff
[Top][All Lists]
Advanced

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

Re: [Groff] handling of composing and combined Unicode characters


From: Bruno Haible
Subject: Re: [Groff] handling of composing and combined Unicode characters
Date: Tue, 10 Jan 2006 13:36:30 +0100
User-agent: KMail/1.5

Werner,

Thanks for the explanations.

> Either you register `u0045_0302_0301' with .char directly in your
> document (or in a proper macro file, say, `vi.tmac'), or you add this
> to the devutf8 font description files.

I want to get rid of the description files for everything that is
related to Unicode characters and can be derived algorithmically.
The reason is that there are potentially 1 million of Unicode characters
(currently only ca. 100000, but this is still a large number). Also
the number of possible combined characters is virtually unlimited. If
every invocation of troff and of grotty has to parse such a large
file, the startup time will be in the range of several seconds, which
is prohibitive.

But before discussing the implementation, I'd like to agree with you
on the first intermediate goal: the output of 'troff'.

  1) Should the output of 'troff' contain Unicode characters or glyphs?
     I.e. u0045 then u0302 then u0301, or u0045_0302_0301 as a single
     entity?

  2) Do you agree that the case u0078_0302_0301 should be handled the
     same way as u0045_0302_0301? (For one of them the precomposed
     character is contained in Unicode, for the other it isn't.)
     I think both should be handled the same way, because
       - the precomposed characters in Unicode are historical artefacts,
       - new precomposed characters are sometimes added to new Unicode
         versions.

Maybe the answers to these two questions depends whether the next
program in the pipe is 'grotty' or not? (I hope it's independent.)

Also, is src/roff/troff/input.cpp:composite_glyph_name() one of the
functions involved here, or is my understanding of the code completely
wrong?

Bruno





reply via email to

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