Download presentation

Presentation is loading. Please wait.

Published byGabriel Suarez Modified over 5 years ago

1
Introduction to Using MathML Presented by:Robert Miner Director of New Product Development Bob Mathews Director of Training

2
2 What well cover Part I – Understanding MathML Overview of MathML Presentation and content markup MathML elements Building a MathML expression and inserting into HTML and XML pages.

3
3 What well cover Part I – Understanding MathML Part II – Magic Incantations DOCTYPEs & MIME types Namespaces Object Tags and Processing Instructions Universal MathML Stylesheet

4
4 What well cover Part I – Understanding MathML Part II – Magic Incantations Part III – Tools Design Science WebEQ Design Science MathType with MathPage technology TeX4ht Amaya Now on to Part I – Understanding MathML

5
5 Overview of MathML The Mathematical Markup Language (MathML) was first published as a recommendation in April 1998. From the Math Activity Statement of the W3C Math Working Group: Designed as an XML application, MathML provides two sets of tags, one for the visual presentation of mathematics and the other associated with the meaning behind equations.

6
6 The Mathematical Markup Language (MathML) was first published as a recommendation in April 1998. From the Math Activity Statement of the W3C Math Working Group: Designed as an XML application, MathML provides two sets of tags, one for the visual presentation of mathematics and the other associated with the meaning behind equations. Overview of MathML

7
7 The Mathematical Markup Language (MathML) was first published as a recommendation in April 1998. From the Math Activity Statement of the W3C Math Working Group: …two sets of tags… MathML is not designed for people to enter by hand but specialized tools provide the means for typing in and editing mathematical expressions.

8
8 The Mathematical Markup Language (MathML) was first published as a recommendation in April 1998. From the Math Activity Statement of the W3C Math Working Group: …two sets of tags… MathML is not designed for people to enter by hand but specialized tools provide the means for typing in and editing mathematical expressions. Overview of MathML

9
9 Attributes generally specify additional optional information about the element. Each attribute has a name and a value. For example, the mfrac element has an attribute called linethickness. Most elements represent templates or patterns for laying out subexpressions. For example, there is an mfrac element for fractions, and an msqrt element for square roots. Anatomy of a MathML expression elements attributes About 30 MathML presentation elements which accept about 50 attributes Using presentation markup, its possible to precisely control how an expression will look when displayed. About 120 content elements, accepting about a dozen attributes. Content markup facilitates applications other than display, like computer algebra and speech synthesis. Most content elements represent either operators or mathematical data types. For example, there is a divide/ element for division, and an emptyset element to denote the empty set.

10
10 Two types of elements Most presentation elements have start and end tags, similar to the way some HTML has start and end tags. … These elements can have other data in-between the start and end tags, such as text, extended characters, or other elements.

11
11 Two types of elements Most presentation elements have start and end tags, similar to the way some HTML has start and end tags. … The other type of MathML element is an empty element of the form These elements have just one tag. There are only 4 empty presentation elements, but over 100 empty content elements, used in prefix notation.

12
12 Two types of elements Most presentation elements have start and end tags, similar to the way some HTML has start and end tags. … The other type of MathML element is an empty element of the form Elements can also accept attributes. If an element has both start & end tags, the attribute immediately precedes the > in the start tag.

13
13 Two types of elements Most presentation elements have start and end tags, similar to the way some HTML has start and end tags. … The other type of MathML element is an empty element of the form Elements can also accept attributes. In empty elements, attributes immediately precede the />.

14
14 Examples of attributes … … Inserts a 12-pt space. For 12 pixels, use 12px.

15
15 Basic presentation elements – identifier, such as a variable, function name, constant, etc. example: x rendering: x example: sin rendering: sin

16
16 Basic presentation elements – identifier, such as a variable, function name, constant, etc. – operator, such as a summation, fence (parentheses, brace, etc.), accent, etc. example: ( rendering: ( example: ∑ rendering: This is an example of an entity reference. Entity references are just keywords in a special format, which represent extended characters. Other examples are α (lower- case Greek alpha), and ∞ (infinity).

17
17 Basic presentation elements – identifier, such as a variable, function name, constant, etc. – operator, such as a summation, fence (parentheses, brace, etc.), accent, etc. – number Can you identify this expression? x – ( 3 + y ) x – (3 + y)

18
18 Token elements Most MathML elements, like the mfrac element mentioned earlier, expect to only find other MathML elements in their content… …but some presentation elements –,, and, for example – are different. They are examples of token elements. Token elements are the only elements which directly contain character data.

19
19 Scripts Superscripts and subscripts are ubiquitous in mathematical notation, and although you wont be doing much MathML writing manually, it helps to familiarize yourself with the schemata. MathML contains seven presentation elements for different kinds of scripts, but well take a look at the most common.

20
20 Scripts – sub & super These are the first elements weve seen in detail that normally have more than one argument. basescript Subscript: base script basescript Superscript: base script x 1 Usage: x 1 x 1 x 2 x 2 x 2 x 1 2 x 1 x 1 2 2 Why cant we code it this way: x 1 ?

21
21 Including MathML in your page We need some way to identify the math markup to our browser, plug-in, or applet. MathML markup is inserted between and tags to distinguish MathML from other markup. Although most tags will differ from presentation markup to content markup, the tag is common to both.

22
22 Coding simple expressions As we stated at the beginning, it is not our goal in this tutorial to make you proficient at writing MathML. Youll likely use a software product to produce the MathML markup rather than write it yourself. Our goal is to familiarize you enough with the MathML syntax and construction that you can read and understand a block of code, and can perhaps make changes to it by hand.

23
23 Coding simple expressions As we stated at the beginning, it is not our goal in this tutorial to make you proficient at writing MathML. That being the case, you know enough MathML now to try your hand at coding a couple of simple expressions…

24
24 Example 1 – try coding this… Dont forget to begin with the start tag and end with the end tag

25
25 Example 1 – try coding this… b 2 – 4

26
26 b 2 – 4 ⁢ a ⁢ c Example 1a b 2 – 4 a c or… b 2 – 4 ⁢ a ⁢ c This entity doesnt appear in print, but here we have added it to facilitate voice synthesis and heuristic evaluation by computer algebra systems. Horizontal row of expressions aligned on the baseline. Wrapping an mrow around an element or elements is always permissible, and often necessary in order to group terms together, for example, for use in a script, etc.

27
27 Example 2 – one more… x 2 + y 2 = r 2

28
28 Other presentation elements Presentation elements are grouped: Token Elements identifier number operator, fence, or separator text

29
29 Other presentation elements Presentation elements are grouped: Token Elements General Layout to group subexpressions form fraction from 2 subexpressions radical with a specified index surround content with a pair of fences

30
30 Other presentation elements Presentation elements are grouped: Token Elements General Layout Scripts and Limits,, attach a script under a base attach a script over a base attach a script both under and over a base

31
31 Other presentation elements Presentation elements are grouped: Token Elements General Layout Scripts and Limits Tables table or matrix row in a table or matrix one entry in a table or matrix

32
32 Other presentation elements Presentation elements are grouped: Token Elements General Layout Scripts and Limits Tables Actions binds actions to a subexpression

33
33 Content elements Most fundamental to content markup is the element, which enables the explicit application of a function to its argument.

34
34 Content elements application of a function to argument. Token Elements content number content identifier

35
35 Content elements application of a function to argument. Token Elements Basic Content Elements generic inverse compose 2 or more functions piecewise defined function

36
36 Content elements application of a function to argument. Token Elements Basic Content Elements Arithmetic, Algebra, and Logic division to the power of nth root complex conjugate

37
37 Content elements application of a function to argument. Token Elements Basic Content Elements Arithmetic, Algebra, and Logic Relations equal greater than or equal the divides operator

38
38 Content elements application of a function to argument. Token Elements Basic Content Elements Arithmetic, Algebra, and Logic Relations Calculus and Set Theory partial derivative lower limit (of integral, etc.) union or meet

39
39 Content elements application of a function to argument. Token Elements Basic Content Elements Arithmetic, Algebra, and Logic Relations Calculus and Set Theory Further element groups include sequences & series, elementary classical functions, statistics, linear algebra, semantic mapping elements, and constants.

40
40 Example 3 – content markup We want to code this expression in content markup: We know we need to surround the code with the … element… …but we havent seen yet how to combine content elements to create an entire expression, so here goes…

41
41 Example 3 – content markup π 1

42
42 Example 3 – content markup π 1

43
43 Example 3 – content markup π 1

44
44 Example 3 – content markup π π 1 to the left of the to the left of the to the right of the

45
45 Example 3 – content markup π 1

46
46 Example 3 – compare π 1 cos π = – 1

47
47 Summary Presentation markup is for describing math notation, and content markup is for describing mathematical objects and functions. In presentation markup, expressions are built-up using layout schemata, which tell how to arrange their subexpressions (i.e., mfrac or msup).

48
48 Summary Presentation markup…& content markup MathML elements either have start and end tags to enclose their content, or use a single empty tag.

49
49 Summary Presentation markup…& content markup MathML elements… Attributes may be specified in a start or empty tag. Attribute values must be enclosed in quotes.

50
50 Summary Presentation markup…& content markup MathML elements… Attributes … in a start or empty tag. All character data must be enclosed in token elements.

51
51 Summary Presentation markup…& content markup MathML elements… Attributes … in a start or empty tag. All character data … token elements. Extended characters are encoded as entity references.

52
52 Summary Presentation markup…& content markup MathML elements… Attributes … in a start or empty tag. All character data … token elements. Extended characters as…entity references. We discussed other layout schemata – math, mfrac, mrow, etc. The next session of the tutorial will deal with displaying MathML in browsers.

53
53 Part II – Magic Incantations DOCTYPEs & MIME types Namespaces Object Tags and Processing Instructions Universal MathML Stylesheet Triggering MathML rendering in browsers requires special declarations in the page.

54
54 Which Browsers? Internet Explorer (requires add-on software) The main choices are: MathPlayer (IE5.5 or higher under Windows) Techexplorer (IE5 or higher, many platforms) JavaScript/CSS (IE6 Windows, others soon?) Netscape (add-ons required before NS7 PR1) Some things to note: MathML doesnt yet work on the Mac The decision to include MathML isnt final

55
55 DOCTYPEs and MIME types There are two ways browsers determine what kind of data needs to be displayed. Local files indicate their type with a filename extension (Windows, Unix) or extra data included in the file (Mac). Data coming over an http connection doesnt have a filename. Thus, web servers include extra data about what kind of file is being sent. This extra data is called a MIME type.

56
56 DOCTYPEs and MIME types Web servers generally use file extensions to pick the MIME type. This doesnt always work… Netscape 7 is fanatical about using only the MIME type to determine how to display a document. Internet Explorer is extremely cavalier in using the MIME type, preferring to sniff inside the document to guess its type.

57
57 MIME types We are concerned with three kinds of files: XML files. This includes XHTML files. Netscape 7 will only render MathML in this kind of file. HTML files. Internet Explorer will only render MathML in HTML files. XSL files. These are also XML files, but they usually end.xsl instead of.xml, which screws up many/most web servers.

58
58 XHTML vs HTML Start and end tags must always match. Things such as must be empty tags. All attributes must have quotes around them Your code actually has to be correct! XHTML and HTML are nearly the same. The main difference is that XHTML is picky while HTML is lax. The most important things are:

59
59 MIME types The upshot is: To work in Netscape, you need an XML document. To work in Internet Explorer you need an HTML document. So, in practice you create an XHTML document, and fiddle with the MIME type On the server using scripts, etc. On the client using XSL stylesheets.

60
60 DOCTYPEs A DOCTYPE is a special declaration at the beginning of an HTML or XML document that defines what kind of markup is in the document. DOCTYPEs are really for validation, not identification. DOCTYPEs point to a DTD, which defines the syntax of the markup in the document.

61
61 DOCTYPEs ]> Typical DOCTYPE declarations look like this:

62
62 DOCTYPEs Netscape 7 requires a DOCTYPE, but doesnt actually look at the DTD to which it points. Instead the DTD must match one of a few predefined values. Internet Explorer doesnt require a DOCTYPE, but it does download the DTD and use it if there is one.

63
63 DOCTYPEs The upshot is: In your XHTML document, you put a DOCTYPE, and The W3C Math WG pulls its hair out trying to make a DTD available that is both correct and works around the bugs in the IE parser.

64
64 Namespaces XML languages are identified by a URI. MathML is http://www.w3.org/1998/Math/MathML XHTML is http://www.w3.org/1999/xhtml They can be indicated in two ways. By using an xmlns attribute on an element By adding a prefix to element names Complexities arise when two XML dialects must mix. The case of interest is XHTML + MathML. The solution is to use namepaces.

65
65 Namespaces … x + 2 … Use the xmlns attribute on the outermost element of the embedded markup. This places the element on which the attribute is set, and its children in the indicated namespace.

66
66 Namespaces <html xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://www.w3.org/1998/Math/MathML"> … x + 2 … To use prefixes, you must Associate a prefix and a namespace using an xmlns:prefix attribute on a containing element. Use the prefix to identify elements that should be in the namespace.

67
67 Namespaces & DOCTYPEs <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "xhtml-math11-f.dtd" [ ]> <html xmlns="http://www.w3.org/1999/xhtml" … x + 2 … Since the URIs for namespaces are long, one trick some people like is to declare an entity reference for it in the DOCTYPE:

68
68 Objects and PIs The element instructs IE what piece of software to load. A processing instruction (or PI) is used to assign the add-on software to render markup from a particular namespace. Two additional declarations are required to trigger add-on software for math rendering in Internet Explorer:

69
69 Objects and PIs <OBJECT ID="behave1" CLASSID="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"> Windows uses a long string of digits and letters called a class id to uniquely identify software components. The object tag uses an attribute to specify a class id:

70
70 Objects and PIs <OBJECT ID="behave1" CLASSID="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"> There are many kinds of processing instructions, with different attributes. For IE behaviors one specifies a namespace, and the ID of an object:

71
71 Objects and PIs Behaviors are actually triggered by a namespace prefix, and not the namespace itself. The upshot is, to use add-ons such as MathPlayer or Techexplorer, You must include an OBJECT and PI. You must use the prefix method for namespaces. One complexity arises from a bug in Internet Explorer behaviors:

72
72 Putting It Together Write XHTML Include a DOCTYPE Include an OBJECT and PI Include a namespace declaration Use namespace prefixes on the MathML Altogether then, to create a document that works in both IE and Netscape, you must:

73
73 Putting It Together Netscape will only render your document if it is XML. Internet Explorer will only render it if it is HTML. The solution? XSL stylesheets… But wait! Even if you do all that, there is still the insurmountable problem of MIME types:

74
74 The MathML Stylesheet You add an XSL stylesheet to an XML document using a PI. The stylesheet sits on the server with your document. The stylesheet runs in the client to transform your document for viewing. An XSL stylesheet is a set of templates for transforming an input document into an output document.

75
75 The MathML Stylesheet Detect what browser it is running in and output either XML or HTML accordingly Detect what add-ons are installed and output the necessary Object and PI declarations Convert content to presentation markup XSL is powerful. The W3C Math WG has created a Universal MathML Stylesheet which can:

76
76 The MathML Stylesheet <?xml-stylesheet type="text/xsl" href="style/mathml.xsl" ?> The MathML stylesheet PI looks like this:

77
77 The MathML Stylesheet Include the stylesheet PI. Write XHTML. Dont use entity references. Use numeric references instead. Use namespaces to indicate the MathML. Dont use Object tags or behavior PIs. Its not necessary to use a DOCTYPE. In order to use the MathML stylesheet,

78
78 Summary The document must be XHTML (NS). It needs a DOCTYPE (NS). The MathML must be in a namespace (both,) and you have to use the prefix method (IE). You need an element and behavior PI (IE). Serve it as XML for NS, and HTML for IE. Getting MathML in a document to render in both IE and Netscape is quite a trick. The necessary ingredients are:

79
79 Summary The document must be XHTML without entity names. Include the stylesheet PI. The MathML must be in a namespace (either method). You can omit the DOCTYPE, element and behavior PI. A simpler, alternative method which also deals with the MIME types is to use the Universal Math Stylesheet:

Similar presentations

OK

Slide R - 1 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Prentice Hall Active Learning Lecture Slides For use with Classroom Response.

Slide R - 1 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Prentice Hall Active Learning Lecture Slides For use with Classroom Response.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google