[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Action: Define markup for equations, add mathmlref to mathml
I have worked up a markup design for equations and have added <mathmlref> to
the <mathml> element. I've implemented the DTD and RNG declarations.
For <mathmlref> I've defined a specialization of <xref>. I've defined it as
being a reference to a <m:math> element, either implicitly as the root of
the referenced XML document or by ID within a larger non-DITA XML document
(note that you can use normal conref with <mathml> so only non-DITA XML case
is useful for <mathmlref>).
For equation markup, I've defined a new domain, equationDomain, that defines
three element types:
<equation-inline> : Specializes from <ph> and allows all <ph> content
(because the equation content can take any form).
<equation-block> : Specializes from <p> and likewise allows all <p> content.
<equation-display> : Specializes from <fig> and allows all <fig> content.
The documentation for this element says that it can use <mathml> directly if
the only content other than the title or description is the <mathml>
element.
One question: should I prepare a separate proposal for the equation domain
or add it to the existing MathML proposal (13111)?
Cheers,
E.
Here is a sample document:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic SYSTEM "topic-with-mathml.dtd">
<topic
id="dtd-math-topic">
<title>Topic with DTD-Based MathML Domain</title>
<body>
<fig>
<title>Inline Equation markup</title>
<p>Text before the equation <equation-inline> <mathml>
<m:math>
<m:semantics>
<m:mrow>
<m:msqrt>
<m:mrow>
<m:msup>
<m:mi>a</m:mi>
<m:mn>2</m:mn>
</m:msup>
<m:mo>+</m:mo>
<m:msup>
<m:mi>b</m:mi>
<m:mn>2</m:mn>
</m:msup>
</m:mrow>
</m:msqrt>
</m:mrow>
</m:semantics>
</m:math>
</mathml> </equation-inline> text after the equation.</p>
</fig>
<fig>
<title>Block Equation markup</title>
<p>Para before the equation</p>
<equation-block> <mathml>
<m:math>
<m:semantics>
<m:mrow>
<m:msqrt>
<m:mrow>
<m:msup>
<m:mi>a</m:mi>
<m:mn>2</m:mn>
</m:msup>
<m:mo>+</m:mo>
<m:msup>
<m:mi>b</m:mi>
<m:mn>2</m:mn>
</m:msup>
</m:mrow>
</m:msqrt>
</m:mrow>
</m:semantics>
</m:math>
</mathml> </equation-block>
<p>Para after the equation.</p>
</fig>
<p>Display equation with directly-referenced <mathml> element:</p>
<equation-display>
<title>Equation Title</title>
<desc>Equation description</desc>
<mathml>
<m:math
display="block">
<m:semantics>
<m:mrow>
<m:msqrt>
<m:mrow>
<m:msup>
<m:mi>a</m:mi>
<m:mn>2</m:mn>
</m:msup>
<m:mo>+</m:mo>
<m:msup>
<m:mi>b</m:mi>
<m:mn>2</m:mn>
</m:msup>
</m:mrow>
</m:msqrt>
</m:mrow>
</m:semantics>
</m:math>
</mathml>
</equation-display>
<p>Display equation with nested equation elements:</p>
<equation-display>
<title>Equation Title</title>
<desc>Equation description</desc>
<equation-block>
<mathml>
<m:math>
<m:semantics>
<m:mrow>
<m:msqrt>
<m:mrow>
<m:msup>
<m:mi>a</m:mi>
<m:mn>2</m:mn>
</m:msup>
<m:mo>+</m:mo>
<m:msup>
<m:mi>b</m:mi>
<m:mn>2</m:mn>
</m:msup>
</m:mrow>
</m:msqrt>
</m:mrow>
</m:semantics>
</m:math>
</mathml>
</equation-block>
<p>And here is that equation again:</p>
<equation-block>
<mathml>
<m:math>
<m:semantics>
<m:mrow>
<m:msqrt>
<m:mrow>
<m:msup>
<m:mi>a</m:mi>
<m:mn>2</m:mn>
</m:msup>
<m:mo>+</m:mo>
<m:msup>
<m:mi>b</m:mi>
<m:mn>2</m:mn>
</m:msup>
</m:mrow>
</m:msqrt>
</m:mrow>
</m:semantics>
</m:math>
</mathml>
</equation-block>
</equation-display>
<fig>
<title>Equation with non-MathML Content</title>
<p>Suppose a x^2+b x+c=0 and a!=0. We first divide by \a to get
x^2+b/a
x+c/a=0.</p>
<p>See <xref
href="http://www.wjagray.co.uk/maths/ASCIIMathMLinfo.html"
format="html"
scope="external">http://www.wjagray.co.uk/maths/ASCIIMathMLinfo.html</xref>.
</p>
</fig>
</body>
</topic>
--
Eliot Kimber
Senior Solutions Architect, RSI Content Solutions
"Bringing Strategy, Content, and Technology Together"
Main: 512.554.9368
www.rsicms.com
www.rsuitecms.com
Book: DITA For Practitioners, from XML Press,
http://xmlpress.net/publications/dita/practitioners-1/
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]