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 ??Received on Monday, 5 August 1996 14:42:32 UTC
This archive was generated by hypermail 2.4.0 : Saturday, 15 April 2023 17:19:57 UTC