[Prev][Next][Index][Thread]
SGML style display list specification
-
To: w3c-math-erb@w3.org
-
Subject: SGML style display list specification
-
From: rminer@geom.umn.edu
-
Date: Mon, 5 Aug 1996 13:41:56 -0500
-
From w3c-math-erb-request@www10.w3.org Mon Aug 5 14: 42:32 1996
-
Message-Id: <199608051841.NAA00559@hopf.geom.umn.edu>
Hello all.
Here is a very rough proposal for the underlying "display layer" for
the HTML Math proposal. I needed some specification for the prototype
renderer we are working on here, and Splitting this out as a separate
piece seems to make sense on a number of levels, so we did. This is
basically the result of a long weekend with Neil, so I wouldn't dream
of calling it finished. I expect lots of useful criticism...
Robert
----------------------------------------------------------------------
HTML Math Display Language Specification -- Draft
1. Introduction
We propose describing the display language as an SGML application.
The language consists of 17 entity tags, taking around 40 attributes.
Some attributes, like font size, are global. Others, like fraction
line width apply to a specific schema. Still others are attached to
an operator, such as whether it stretches.
These schema, together with extended character font support, provide
enough information to typeset roughly on a par with TeX. My
implementation of it won't be as good as that, mostly because of time
and fonts, but I hope it will be respectable.
Since they all attempt to do the same thing, it is no surprise this
proposal looks a fair amount like ISO 12083, and Dave's expired HTML
Math 3.0 spec. It is somewhat more structured than 12083, I believe,
and it includes more attributes than the old 3.0 spec.
2. Rationale
First, we propose SGML because it integrates into the web better.
Bruce's notation is elegant and terse, but it doesn't deal with
attributes as intuitively, and the way we have conceived the task,
attributes are important. Moreover, since the user's will need to be
able to override all these things, there will have to be sgml
equivalents *anyway*. Finally, we intend that most users will use
HTML Math Source, a much more natural and terse language, and the
*parser* will generate the dispaly language.
3. Entities
Tag Description
----------- ------------------------------------
Attribute and Mode control
<math> mode delimiter
<mattribute> set attributes
Basic Types
<maccent> math accent
<mi> identifier
<mn> number
<mo> operator
Math Layout Schema
<mfrac> fraction
<moverunder> over and underscripts
<mprescripts> prescripts
<mroot> radical
<mscripts> sub and superscripts
Math Array Schema
<marray> analogous to <table>
<mr> analogous to <tr> (table row)
<md> analogous to <td> (table data cell)
Container Schema
<mrow> Generic text row container
<mbox> Used to mask internal structure
Http and Java Interaction
<maction>
4. Attributes
Attribute and Mode control
Tag Attribute Values Default
-------------- ------------ ---------------------------------------
<MATH> mode = inline | display inline
fontsize = (number) (ambient)
fontweight plain | bold automatic
fontslant plain | italic automatic
fontfamily (string) TimesRoman
fontcolor #rrggbb #000000
bkground #rrggbb (browser's)
<MATTRIBUTE> all
ATTRIBUTE is used to override any attribute within it's scope. This
is in contrast to setting an attribute within a schema tag, in which
case the attribute is changed in that schema only, and does not
descend to its children.
Basic Types
Tag Attribute Values Default
-------------- ------------ ---------------------------------------
<MACCENT> stretchy ture | false automatic
<MI> fontsize = (number) (ambient)
fontweight plain | bold automatic
fontslant plain | italic automatic
fontfamily (string) TimesRoman
fontcolor #rrggbb #000000
bkground #rrggbb (browser's)
<MN> none that I can think of
<MO> lspace (number) set by dictionary
rspace (number) set by dictionary
strechy true | false set by dictionary
maxsize (number) set by dictionary
minsize (number) set by dictionary
largeop true | false dictionary & mode
movescripts true | false dictionary & mode
Math Layout Schema
Tag Attribute Values Default
-------------- ------------ ---------------------------------------
<MFRAC> linewidth (number) .2 (x-height)
<MOVERUNDER> position inline | display automatic
<MPRESCRIPTS> sizemultiple (number) .71
minsize (number) 5 pt
minseparation (number) .3 (x-height)
baseshift (number) 1 (x-height)
<MROOT> xpos (number) 0 (m-width)
ypos (number) 0 (m-width)
<MSCRIPTS> sizemultiple (number) .71
minsize (number) 5 pt
minseparation (number) .3 (x-height)
baseshift (number) 1 (x-height)
Math Array Schema
Tag Attribute Values Default
-------------- ------------ ---------------------------------------
<MARRAY> layout left [n] | center [n] | right [n] |
solid [n] | dashed [n]
Default is layout = "center center ..."
align top | bottom | center | axis [n]
Default is align = "center"
padding (number) 1 (m-width)
equalrows true | false true
equalcols true | false true
<MR> layout top | center | axis | base | bottom
Default is base
linebelow none | solid | dashed none
<MD> rowspan (number) 1
colspan (number) 1
rowalign top | center | axis | base | bottom
colalign left | center | right
Container Schema
Tag Attribute Values Default
-------------- ------------ ---------------------------------------
<MBOX> same as the <MATH> tag
<MROW> same as the <MATH> tag
Http and Java Interaction
Tag Attribute Values Default
-------------- ------------ ---------------------------------------
<MACTION> href URL my personal homepage ;-)
statusline (string) none
others ??
Follow-Ups: