9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: quanstro@quanstro.net
To: 9fans@cse.psu.edu
Subject: Re: [9fans] combining characters
Date: Fri, 19 May 2006 10:11:26 -0500	[thread overview]
Message-ID: <12bfb211154a2ebb15ff7e46a375c74d@quanstro.net> (raw)
In-Reply-To: <c349ca3fdc72f917b195e8fd2113eb78@vitanuova.com>

On Fri May 19 09:38:23 CDT 2006, rog@vitanuova.com wrote:
> perhaps there are actually two problems here:
> 1) how to get libdraw to map back from a sequence of combining characters
> to a character in the font that represents that sequence.

this is pretty easy.  the unicode standards provides cannonical compositions.
i think it would be easier for libdraw to insist that string be given strings that
have been cannonicaly composed.  perhaps a job for tcs.

> 2) how to draw sequences of combining characters that don't exist in precombined
> form within unicode. it's quite possible that one might wish to provide
> pre-rendered glyphs for some of these sequences - the current font format
> can't deal with that.

the general case doesn't seem like it would yield a solution with a bitmap font.
sure you could put a circumflex on an "a".  but what about dashed letters like
ł?  drawing a dash through an arbitrary character gets to be a real pain.  

the good news is that solving #1 would take care of most problems.  unfortunately,
some romanized versions of russian and vietnamise (i believe) would still not work.
but we would get 80% of what we would like without the pain of trying to treat
a bitmap as if they were vector character descriptions a la metafont.

> 
> another issue is dealing with code (e.g. libframe) that assumes that
> characters do not overstrike - i.e. that there's a 1-1 correspondence
> between Runes and glyphs.

charofpt would be a problem.  there would be some problems with picking a proper
endpoint for highlighting.  a break between the base and the combiners would
be a problem.  i think the largest problem here would be dealing with the character
height.  currently in libdraw a character's height is the font's height. this isn't true
for many fonts we already have -- ÄÖÜ☺ tend to get clipped with pelm because they are 
taller than the font file claims. just expanding the height of the font would look pretty 
funny in the absence of taller characters.

> yet another is how one should deal with character-based indexing, for instance
> indexing in sam expressions - does /é/-#0+#1 point to the character after
> the unadorned e, or after the whole sequence?

thair be dragons here.  the library of congress has a 100-page manual on alphebetization
of languages with roman letters.  different languages have different rules (sometimes for the 
same codepoint); a language sometimes has different rules for different codepoints.
then there are ligatures.  in german ss and ß are sorted the same. 

there are probablly only two sensible ways to deal with this.  either strip/do not strip
all combiners and do a naive sort or define some sort of locale.

> it'd be nice to sort this issue out properly; surely it shouldn't be
> too hard?

i believe this is another entry for the "famous lies list," ranking somewhat
below "check's in the mail" and above "i have this friend who...."

- erik


  reply	other threads:[~2006-05-19 15:11 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-19 14:36 rog
2006-05-19 15:11 ` quanstro [this message]
2006-05-19 16:16   ` quanstro
2006-05-19 21:03   ` Jack Johnson
2006-05-19 21:26     ` Lluís Batlle i Rossell
2006-05-19 21:21       ` quanstro
2006-05-19 21:45     ` jmk
2006-05-19 21:57       ` Francisco J Ballesteros
2006-05-19 21:51         ` quanstro
2006-05-19 22:04           ` Francisco J Ballesteros
2006-05-19 22:16             ` quanstro
2006-05-19 22:34               ` Roman Shaposhnick
2006-05-19 22:35                 ` quanstro
2006-05-19 23:40                   ` Roman Shaposhnick
2006-05-19 23:43                     ` quanstro
2006-05-20  0:12                       ` Roman Shaposhnick
2006-05-20  0:13                         ` quanstro
2006-05-20  0:43                           ` Roman Shaposhnick
2006-05-20  0:44                             ` quanstro
2006-05-20  4:13                               ` Jack Johnson
2006-05-21 18:10                               ` Joel Salomon
2006-05-21 18:12                               ` Joel Salomon
2006-05-25  0:23                                 ` Roman Shaposhnick
2006-05-27 19:41                               ` Dan Cross
2006-05-27 20:15                                 ` Victor Nazarov
2006-05-28  1:49                                   ` LiteStar numnums
2006-05-20  0:59                             ` andrey mirtchovski
2006-05-20  0:51                               ` quanstro
2006-05-20  1:43                                 ` Roman Shaposhnick
2006-05-20  1:38                               ` Roman Shaposhnick
2006-05-20  1:59                                 ` Federico Benavento
2006-05-25  0:24                                   ` Roman Shaposhnick
2006-05-20  3:59                                 ` geoff
2006-05-20 10:56                                 ` Lucio De Re
2006-05-20 11:04                                   ` Lluís Batlle i Rossell
2006-05-20  0:18                         ` andrey mirtchovski
2006-05-21 18:11                         ` Joel Salomon
2006-05-19 22:40                 ` andrey mirtchovski
2006-05-19 22:36                   ` quanstro
2006-05-19 23:28                     ` andrey mirtchovski
2006-05-19 22:54             ` Joel Salomon
2006-05-19 22:50               ` quanstro
2006-05-20  1:05                 ` Skip Tavakkolian
2006-05-21 17:52                 ` Joel Salomon
2006-05-22  4:04                   ` Jack Johnson
2006-05-19 22:29         ` Lluís Batlle i Rossell
2006-05-19 22:22           ` quanstro
2006-05-19 22:45             ` Lluís Batlle i Rossell
2006-05-22 22:55 erik quanstrom
2006-05-23  4:58 ` Jack Johnson
2006-05-23 10:07 erik quanstrom
2006-05-23 14:24 ` LiteStar numnums
2006-05-23 17:07   ` plan9
2006-05-23 17:11     ` Ronald G Minnich
2006-05-23 18:53     ` Charles Forsyth
2006-05-23 20:09     ` Harri Haataja
2006-05-25  0:31     ` Roman Shaposhnick
2006-05-25  2:34       ` Andy Newman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=12bfb211154a2ebb15ff7e46a375c74d@quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).