Skip to content Skip to navigation

Connexions

You are here: Home » Content » Presentation token elements (mi,mn)

Navigation

Content Actions

  • Download module PDF
  • Add to ...
    Add the module to:
    • My Favorites
    • A lens
    • An external social bookmarking service
    • My Favorites (What is 'My Favorites'?)
      'My Favorites' is a special kind of lens which you can use to bookmark modules and collections directly in Connexions. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need a Connexions account to use 'My Favorites'.
    • A lens (What is a lens?)

      Definition of a lens

      Lenses

      A lens is a custom view of Connexions content. You can think of it as a fancy kind of list that will let you see Connexions through the eyes of organizations and people you trust.

      What is in a lens?

      Lens makers point to Connexions materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

      Who can create a lens?

      Any individual Connexions member, a community, or a respected organization.

    • External bookmarks
  • E-mail the author

Recently Viewed

This feature requires Javascript to be enabled.

Presentation token elements (mi,mn)

Module by: Sunil Kumar Singh

There are seven (7) token elements designed to serve the purpose of rendering characters to (i) display (“mi”,”mn”,”mo” and ”mtext”) mathematical content (ii) render characters for interfacing with other programs (“ms”) (iii) manage space around characters (mspace) and (iv) create new characters (mlymph).

The presentation token elements are the only elements to take and display characters in MathML. Mathematical symbols or identifiers are either single character (Example : x) or multiple characters (Example : sin). In mathematics, simple rendering of text is not sufficient. Mathematical content uses large numbers of symbols with varieties of visual forms and styles. In normal text rendering, font style does not matter, but different font styles convey different mathematical ideas and concepts and as such are treated as different characters. Besides, there are convention in mathematics about spacing around operators and relative size that needs to be negotiated with unequal size of other characters. To capture the complete spectrum of mathematical details, MathML employs about 900 characters and a specialized system of constructors that render mathematical content in consistent and coherent manner to match the precise nature of mathematical symbols and expressions.

It is interesting to know that rendering of mathematical content by token elements - even if typed directly as string of characters and looking similar on browser display - is inherently different to simple text rendering in a horizontal sequence. The difference is visible when seen in the context of uses that require scripting like sub or super scripts, stretching of operators (like a parenthesis is required to grow to cover the height of expression enclosed etc) etc.

In MathML, the differentiation operator “ⅆ” , for example, could have been represented by letter “d” and hence it may be argued why to include a separate character to represent the symbol of differentiation, which could be easily rendered using letter “d” from keyboard. The reason lies in the style convention of mathematics that requires this operator to have a specific style and form different to a normal character “d”.

Furthermore, these token constructors provide many automatic behavior to character representation consistent with the convention in mathematics. An operator like “+” sign can be rendered with or without space depending upon the context in which the sign appears in the expression.

See the output of the MathML codes in the example given below. Inspect the space before and after the sign “+” in the output, the first "+" sign is very close to the identifier "a", while the second "+" is surrounded with greater amount of space in horizontal direction. These detailed display design consideration is extremely important to reflect the preciseness required in displaying mathematics.

Example 1: Context based spacing in MathML


	    
   <m:math display="block">
      <m:mrow> 
        <m:mo> + </m:mo> 
        <m:mi> x </m:mi> 
        <m:mo> + </m:mo> 
        <m:mi> y </m:mi> 
      </m:mrow> 
   </m:math>

	    
	  

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

+ x + y + x + y

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 !

Example 2: 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 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.

Example 3: 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 θ 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.

Example 4: 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 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.

Example 5: 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 ; 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>

	    
	  

Example 6: 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 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) :

Example 7: 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 ; Ratio is : 22 7 ;

Comments, questions, feedback, criticisms?

Send feedback