Le 7 juin 2006 à 14:47, Ian Hickson a écrit :

So, while I applaud the re-use of ISO12083 here, it seems like an odd
choice. The resulting language seems to be just as verbose as MathML, so why not just reuse MathML, which already has a Web presence? Also, your version of the vocabulary doesn't seem quite the same as ISO12083, which means we would be introducing yet another mathematical markup language, in
a space which already has many such languages.

I'd like to try something a little simpler. So here is my idea for a math markup.

I wrote that as a cheat sheet, not as a specification, because it was simpler for me and because I think it gives a good glimpse at what I'm trying to do. But surely a more formal specification with that later on. Here it is:

 - - -

Use <var> for variables of any kind, with a "type" attribute to identify vector, matrix or other special kinds of variables.

     <var type="vector">x</var>

Use <sup> for exponents.

     <var>x</var><sup>2</sup>

Use <sub> for matrix indices.

     <var type="matrix">X</var><sub>2,2</sub>

Use <frac> for fractions, with <num> and <den> inside, as proposed by White and others.

    <frac>
      <num>1</num>
      <den>2</den>
    </frac>

Use <radical> for radicals, with <radix> and <radicand>, as proposed by White.

    <radical>
      <radix>2</radix>
      <radicand>2</radicand>
    </radical>

Use <matrix type="..."> for matrices, with <mr> for rows, and <md> for cells (like for tables). Just a one column- or a one row- matrix for vectors.

    <matrix type="det">
      <mr><md>1</md><md>2</md></mr>
      <mr><md>3</md><md>4</md></mr>
    </matrix>

Use <fence type="..."> for any kind of fence.

    <fence type="floor">expression</fence>

Use <bounds>, <sup>, and <sub> to add lower and upper bounds to <fence type="bounds">:

    <fence type="bounds">
      <var>x</var>
      <bounds>
        <sub>0</sub>
        <sup>100<sup>
      </bounds>
    </fence>

Use <integral> and <bounds> for integrals.

    <integral>
      <bounds>
        <sub>0</sub>
        <sup>100<sup>
      </bounds>
      3<var>x</var> d<var>x</var>
    </integral>

Use <sum> and <bounds> for big sum operators.

    <sum>
      <bounds>
        <sub><var>x</var> = 0</sub>
        <sup>100<sup>
      </bounds>
      3<var>x</var>
    </sum>

Use <product> and <bounds> for big product operators.

    <product>
      <bounds>
        <sub><var>x</var> = 0</sub>
        <sup>100<sup>
      </bounds>
      3<var>x</var>
    </product>

Use <limit> for limits:

    <limit>
      <var>x</var> -> 0
    </limit>
    <frac>
      <num><var>x</var></den>
      <den>0</den>
    </frac>

Use <formula> to delimit formulas that should stand out of the main prose.

Use ruby annotations for the purpose of over- and under- script/braces.
<http://www.w3.org/TR/ruby/>

Assuming some generic element is adopted for localized numbers, it could be reused inside formulas too.

 - - -

Summary

16 new math-specific elements:

*  <frac>, <num>, and <den>
*  <radical>, <radix>, and <radicand>
*  <matrix>, <mr>, and <md>
*  <fence>
*  <bounds>
*  <integral>, <sum>, <product>
*  <limit>
*  <formula>

5 ruby annotation elements:

*  <ruby>
*  <rbc>, <rtc>
*  <rb>, <rt>, <rp>

3 reused HTML elements:

*  <var>
*  <sup>, <sub>

I think all of these new elements can be styled decently with CSS. I can't say much myself about how suitable it is for a conversion from LaTeX however. I'd appreciate comments on that and any other issue or omission.


Michel Fortin
[EMAIL PROTECTED]
http://www.michelf.com/


Reply via email to