<< Chapter < Page Chapter >> Page >

The point of specialized token construct is visually made through yet another example given belwo. Two simultaneous examples are implemented, using an entity reference “&RightArrow;” . Note the impact of using “mover” element on the character reference “&RightArrow;” . Compare the two outputs. Though the lay out of the arrow and text has not changed, but the arrow is stretched to accommodate the length of the text !

Modified rendering

<m:math display="block"> <m:mrow> <m:mi> x </m:mi> <m:mo> &RightArrow; </m:mo> <m:mtext> maps to </m:mtext> <m:mi> y </m:mi> </m:mrow> </m:math> <m:math display="block"> <m:mrow> <m:mi> x </m:mi> <m:mover> <m:mo> &RightArrow; </m:mo> <m:mtext> maps to </m:mtext> </m:mover> <m:mi> y </m:mi> </m:mrow> </m:math>

Save the file after editing as “test.xml”. The display looks like :

x maps to y x maps to y

"mi" token element

The “mi” element is used to display mathematical identifiers. Identifiers in MathML include literals, constants, name of the angle, trigonometric function etc. The example, here, displays both single and multi character identifiers.

Display with mi element

<m:math display="block"> <m:mtext>I is displayed as : </m:mtext> <m:mi> I </m:mi> <m:mtext>&nbsp;&nbsp;and trigonometric sine function is displayed as : </m:mtext> <m:mi> sin </m:mi> <m:mi> θ </m:mi> </m:math>

Save the file after editing as “test3.xml”. The display looks like :

I is displayed as : I and trigonometric sine function is displayed as : sin θ

Here "&nbsp;" has been used to create two spaces to improve readability.

Note that default rendering of a single character by "mi" element is italic – as against "normal". Multiple characters are, however, displayed as normal. It means that if we want to have a normal display, then we would require to override the default behavior of the ‘mi” element and specify normal display, using “mathvariant” attribute as demonstrated in the example below.

Display with mi element

<m:math display="block"> <m:mtext>Normal I is :&nbsp;&nbsp;</m:mtext> <m:mi mathvariant='normal'> I </m:mi> </m:math>

Save the file after editing as “test3.xml”. The display looks like :

Normal I is : I

The presentation style of a single character in italic form is not without any reason. This suggests that we might be using single character mostly in italic form for mathematical display. In any case, if you differ, you can change the same to normal.

The “mi” element renders character or sequence of characters without any surrounding space. This element together with other character rendering elements (“mn” and “mo”) forms the building blocks of mathematical display, using MathML. It must also be observed that “mi” implements common attributes available for the token element and does not implement additional attributes or attributes specific to the element.

"mn" token element

The “mn” element is a flexible constructor to display unsigned real numbers of various types and formats, including decimals or combination of characters, which convey real number. In the scheme of the rendering of mathematical content under MathML environment, it is preferred to keep sign as an operator and its rendering with "mo" element. This approach is consistent with spacing (inter elements) requirement of operator display.

Display of real numbers

<m:math display="block"> <m:mtext>Forty: </m:mtext> <m:mn> Forty ;</m:mn> <m:mtext>10 : </m:mtext><m:mn> 10 ; &nbsp;</m:mn> <m:mtext>4.23: </m:mtext> <m:mn> 4.23 ; &nbsp;</m:mn> <m:mtext>1,000: </m:mtext> <m:mn> 1,000 ; &nbsp;</m:mn> <m:mtext>0.1e10: </m:mtext> <m:mn> 0.1e10 ; &nbsp;</m:mn> <m:mtext>CX: </m:mtext> <m:mn> CX ; &nbsp;</m:mn> </m:math>

Save the file after editing as “test.xml”. The display looks like :

Forty: Forty ; 10 : 10 ; 4.23: 4.23 ; 1,000: 1,000 ; 0.1e10: 0.1e10 ; CX: CX ;

Note that default rendering style of the characters are “normal” and as such, we do not need to use “mathvariant” attribute to set the display normal. The “mn” element, however, is not suitable for all kinds of numbers. For example, following constants are displayed using “mi” element : <mi> &pi; </mi> <mi> &ImaginaryI; </mi> <mi> &ExponentialE; </mi>

Numbers displayed by mi element

<m:math display="block"> <m:mtext>Complex number : &ThinSpace;</m:mtext> <m:mn> 1 </m:mn> <m:mo> + </m:mo> <m:mn> 2 </m:mn> <m:mo> &InvisibleTimes; </m:mo> <m:mi> &ImaginaryI;</m:mi> </m:math>

Save the file after editing as “test.xml”. The display looks like :

Complex number :   1 + 2

A ratio, on the other hand, is presented with the help of “mfrac” element. See the example code for displaying a ratio of the form (p/q) :

Numbers not displayed by “mfrac” element

<m:math display="block"> <m:mtext>Ratio is :</m:mtext> <m:mfrac> <m:mn> 22 </m:mn> <m:mn> 7 </m:mn> </m:mfrac><m:mi> ; </m:mi> </m:math>

Save the file after editing as “test.xml”. The display looks like :

Ratio is : 22 7 ;

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, A primer in mathml. OpenStax CNX. Apr 19, 2006 Download for free at http://cnx.org/content/col10345/1.16
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'A primer in mathml' conversation and receive update notifications?

Ask