IMPORTANT                            -*- Text -*- 

 * The new layout routine needs lots of work, particularly it should 
   to do alignment right, if it is even possible
   [some work has been done in this direction, but it's far from perfect,
   especially WRT math formulae]

 * Figure out how font's space params relate to the whitespace between
   words in DVI.

 * Go through the current font encoding translation tables and fix the
   unknown glyphs (do a make enc/*.h after ./configure
   --enable-developer-warnings to see the problems).
   [nearly done]

BUGS:

    [None except the known limitations]

UPDATES:

 * Look into the new Unicode 3.2 math characters. Update existing math
   encodings. Especially: math brackets have changed. And maybe it's time
   to add AMS font encodings.

SMALL IMPROVEMENTS:

 * Add encodings: LaTeX symbols, TEX extended ASCII.
 * should ./configure --enable-developer-warnings add
   -Wall etc. to CFLAGS if we're using gcc?

CLEANUPS

 * page.c :
    - Change the prototype of bubble().
    - Move the special-case adjustemts (diacritics, big operators,
      radicals) to a separate source file.
    - box_t has grown large. Do we need a constructor?
    - Rethink the *clean targets in the makefile.

PROJECTS

 * Supplements to outenc.c :
    - Add more visual substitutions for ascii and latin1 output encodings.
    - Think about printing the LaTeX name of important math symbols if
      the output encoding is not unicode (e.g. \alpha, \omega, \int, \sum).
      Should this happen automatically / by cmd line option / as an extra
      output encoding ?
   -  If we do this, the accenting code may have to special-case accented
      glyphs of output width > 1.

 * Restructure the layout code (page_end in page.c) :
    - Break up the messy single loop over the whole page into several
      independant passes. Addition of a "flags" member (and possibly
      others ?) to struct box_t seems neccessary then.
    - Think about how to avoid repeated duplication of code to treat the
      last line of each page correctly. Addition of an extra "end of page"
      glyph below the last line is one possibility.

 * Math layout improvements -- the word break heuristics we use work well
   with normal text, but fail miserably with math (no wonder since
   TeX uses different spacing methods for math and the document author
   usually adds another, impredictable, bunch of spacing instructions).
   This leads to funny spacing in catdvis output and to badly aligned
   sub- and superscripts. Example: $(A_i + B_j)$ may result in something
   like
        (A+B   )
	  i   j

   One possible approach would be: there are no word breaks in formulae.
   Position every glyph in a formula based on its DVI coordinates (as we do
   with word beginnings). Think about how to pick the glyphs that we have to
   position directly. Some ideas:
    - based on glyph hints (i.e. per-unicode-char information)
    - based on per-font information (math chars form extra character sets,
      at least with TeX). Not really nice.
    - Some cases can be detected by looking at "intersecting lines" (e.g.
      the indices intersect with the line on which the variables are placed).

 * Add rule support. Most important are line-like rules (for fractions,
   tables etc.). Possible strategy:
    - When reading page data, detect those rules and put them in a list.
    - Add some extra "placeholder" glyphs to the text in order to reserve
      the neccessary space.
    - Don't directly print the text in a page; draw it on a text canvas
      (similar to array[x, y] of glyph_t) first.
    - Draw the rules on the canvas, using the unicode line drawing chars
      (and some logic to or them together).
    - Now print the canvas. Convert line drawing chars to the selected
      output encoding -- {'|', '-', '+'} should be sufficient.

WISHLIST

 * Implement TFM file location routine also without kpathsea

