Hi Tomas,

now I experimented a little with the glyphs. I would suggest that we use
an 'idx' instead of an 'assoc' list, as there might be quite a lot of
entries.

So I put "glyphlist.txt" in "lib/", and this code in the beginning of
"lib/ps.l":

   # *PsGlyph

   (in "lib/glyphlist.txt"
      (use (L C)
         (while (setq L (line))
            (unless (= '"#" (car L))
               (setq
                  L (split L '";")
                  C (char (hex (pack (cadr L))))
                  L (pack (car L)) )
               (if (idx '*PsGlyph C T)
                  (push (car @) L)
                  (set C (cons L)) ) ) ) ) )

   (====)

   # "*PgX" "*PgY"
   # "*DX" "*DY" "*Pos" "*Fonts" "*Size" "*Font" "*Pag" "*Lim" "*FF" "*UL"
   ...

This uses the characters directly as indexes into the tree (no numeric
conversion is needed later), and stores the glyph names in the values of
these transient symbols.


But now there are two things I don't understand:

1. You concatenated all names for glyphs with identical character code
   into a single entry:

   >                (let A (assoc H *PsGlyph)
   >                   (if A
   >                      (con A (cons G (cdr A)))
   >                      (push '*PsGlyph (list H G)) ) ) ) ) ) ) )

   This is the case, for example, in

      space;0020
      spacehackarabic;0020

   I'm doing the same above (the 'push'). But does that really make
   sense? This would print all the names of a glyph when its character
   code is processed.

2. There are entries in "glyphlist.txt" that have more than one numeric
   value following the semicolon, like

   lamedholamdagesh;05DC 05B9 05BC

   What do these numbers mean? How is the resulting unicode to be
   calculated? You wrote

>                   H (hex (pack (tail (- I) L))) )

   but this surely won't work in such a multi-value case, right?


I tried it with the "app/" demo application. The german umlauts show up
correctly (even without using "bin/lat1").

But if I try the Russian locale, it seems that all characters within a
string are printed one over the other, all on the same spot. What might
be the reason?

I attach an experimental version of "lib/ps.l". For now, it simply
outputs the glyph name and 'glypshow' for any characters (i.e. also for
ASCII characters). I'll optimize that later.

Cheers,
- Alex
-- 
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe

Reply via email to