Re: Plain text: Amendment 1

From: Jonathan Coxhead (jonathan@doves.demon.co.uk)
Date: Mon Jul 05 1999 - 17:31:07 EDT


 | As noted previously, I would not object to adding two more "control
 | characters" to Unicode to remove our dependence on C0 and C1
 | completely:
 |
 | 1. UHT "Unicode Horizontal Tab", which is just like C0 HT except
 | that
 | the tabstops are well-defined (should the tabbing concept be
 | carried forward into Unicode Plain Text, rather than using only
 | spaces). How to define them is, of course, another question.

   My thoughts on this indicate that explicit tab widths are not
appropriate: the only real requirement for plain text is that the
columns line up. So we could have a character

      COLUMN SEPARATOR

(CSEP) to go with LINE SEPARATOR (LSEP) and PARAGRAPH SEPARATOR (PSEP).
It should interact with these as follows.

   "Within a paragraph that contains a CSEP, each LSEP-delimited
line represents a row of a table. The table has as many columns as the
maximum number of CSEP characters in any line. Each column should be
wide enough to accommodate the longest column-contents in any line in
that column. No inter-column spacing is provided: if there is to be
space between columns, one column or the other must contain explicit
space chatacters."

   So the general form of a table would be

      PSEP ... CSEP ... CSEP ... LSEP
      ... CSEP ... LSEP
      ... CSEP ... CSEP ...
      PSEP

   An unsophisticated renderer may choose to render CSEP as a tab to
an 8-column tab stop, and this may often give acceptable results.

 | Whatever is chosen, let's keep it simple.

   This is simple to define, but not to render. Also, it doesn't give
control over left/right/centre justifying each column. If this is
important, I suppose the solution would be a SPACE FILL character, like
\hfil in TeX, which (when occuring in a table, i e, a paragraph with
at least one CSEP character) provides enough space to pad the entry it
appears in to the full width available. This would allow a column to be
right-justified (start all entries with SPACE FILL), centre-justified
(put a SPACE FILL character before and after the entries), or even
justified on a particular character, e g, the decimal point FULL STOP
(break it into 2 columns, by writing CSEP, FULL STOP instead of FULL
STOP, and right-justify the first, left-justify the second).

        /|
 o o o (_|/
        /|
       (_/



This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:48 EDT