Working Draft 6-Jan-97
Mathematical Markup Language
Table of Contents
Title page and Abstract
1. Introduction
1.1 Mathematics and its Notation
1.2 Origins and Goals
1.2.1 The History of MathML
1.2.2 Limitations of HTML
1.2.3 Requirements for Math Markup
1.2.4 Goals of MathML
1.3 The Role of MathML on the Web
1.3.1 Layered Design of Mathematical Web Services
1.3.2 Relation to Other Web Technology
2. MathML Fundamentals
2.1 MathML Overview
2.1.1 Taxonomy of MathML Elements
2.1.2 Expression Trees and Token Elements
2.1.3 Presentation Markup
2.1.4 Content Markup
2.1.5 Mixing Presentation and Content
2.2 Some MathML Examples
2.2.1 Presentation Examples
2.2.2 Content Examples
2.2.3 A Mixed Markup Example
2.3 MathML Syntax and Grammar
2.3.1 An XML Syntax Primer
2.3.2 Children vs. Arguments
2.3.3 MathML Attributes Values
2.3.4 Attributes Shared by all MathML Elements
2.3.5 Collapsing Whitespace in Input
3. Presentation Markup
3.1 Introduction
3.1.1 What Presentation Elements Represent
3.1.2 Terminology Used In This Chapter
3.1.3 Required Arguments
3.1.4 Elements with Special Behaviors
3.1.5 Summary of Presentation Elements
3.2 Token elements
3.2.1 Attributes common to token elements
3.2.2
<mi>
-- identifier
3.2.3
<mn>
-- number
3.2.4
<mo>
-- operator, fence, or separator
3.2.5
<mtext>
-- text
3.2.6
<mspace/>
-- space
3.2.7
<ms>
-- string literal
3.3 General Layout Schemata
3.3.1
<mrow>
-- horizontally group any number of subexpressions
3.3.2
<mfrac>
-- form a fraction from two subexpressions
3.3.3
<msqrt>
and
<mroot>
-- form a radical
3.3.4
<mstyle>
-- style change
3.3.5
<merror>
-- enclose a syntax error message from a preprocessor
3.3.6
<mpadded>
-- adjust space around content
3.3.7
<mphantom>
-- make content invisible but preserve its size
3.3.8
<mfenced>
-- surround content with a pair of fences
3.4 Scripts and Limits Schemata
3.4.1
<msub>
-- attach a subscript to a base
3.4.2
<msup>
-- attach a superscript to a base
3.4.3
<msubsup>
-- attach a subscript-superscript pair to a base
3.4.4
<munder>
-- attach an underscript to a base
3.4.5
<mover>
-- attach an overscript to a base
3.4.6
<munderover>
-- attach an underscript-overscript pair to a base
3.4.7
<mmultiscripts>
-- attach prescripts and tensor indices to a base
3.5 Tables and Matrices
3.5.1
<mtable>
-- table or matrix
3.5.2
<mtr>
-- row in a table or matrix
3.5.3
<mtd>
-- one entry in a table or matrix
3.5.4
<maligngroup/>
and
<malignmark/>
-- alignment markers
3.6 Enlivening Expressions
3.6.1
<maction>
-- bind actions to a subexpression
4. Content Markup
4.1 Introduction
4.1.1 The Intent of Content Markup
4.1.2 The Scope of Content Markup
4.1.3 Basic Concepts of Content Markup
4.2 Content Element Usage Guide
4.2.1 Content Element Categories
4.2.2 Containers
4.2.3 Functions, Operators and Qualifiers
4.2.4 Relations
4.2.5 Conditions
4.2.6 Syntax and Semantics
4.2.7 Semantic Mappings
4.2.8 MathML element types
4.3 Content Element Attributes
4.3.1 Content Element Attribute Values
4.3.2 Attributes Modifying Content Markup Semantics
4.3.3 Attributes Modifying Content Markup Rendering
4.4 The Content Markup Elements
4.4.1 Token Elements
4.4.2 Basic Content Elements
4.4.3 Arithmetic, Algebra and Logic
4.4.4 Relations
4.4.5 Calculus
4.4.6 Theory of Sets
4.4.7 Sequences and Series
4.4.8
Trigonometry
4.4.9 Statistics
4.4.10 Linear Algebra
4.4.11 Semantic Mapping Elements
4
5. Mixing Presentation and Content
5.1 When to Use Mixed Markup
5.1.1 Why Two Different Kinds of Markup?
5.1.2 Analogy with HTML
5.1.3 Reasons to Mix Markup
5.2 How to use Mixed Markup
5.2.1 Mixing Presentation in Content Markup
5.2.2 Mixing Content in Presentation Markup
5.3 Anticipating Macros for Combined Markup
6. Entities, Characters and Fonts
6.1 Introduction
6.1.1 The Intent of Entity Names
6.1.2 The STIX Project
6.2 Entity Listings
6.2.1 Non-Marking Entities
6.2.2 Printing Entity List
6.2.3 Special Constants
6.2.4 Full Alphabetical Lists
6.2.5 ISO Entity Set Groupings
6.2.5.1 ISO Symbol Entity Sets
6.2.5.2 ISO Math Font Entity Sets
6.2.5.3 Other ISO Font Entity Sets
7. Implementing MathML
7.1 Embedding MathML in HTML
7.1.1 The Top-Level
math
Element
7.1.2 Requirements for a MathML Browser Interface
7.1.3 Invoking Embedded Elements as Renderers
7.1.4 Invoking Other Applications
7.1.5 Mixing and Linking MathML and HTML
7.2 Generating, Processing and Rendering MathML
7.2.1 MathML Compliance
7.2.2 Handling Of Errors
7.2.3 An Attribute for Unspecified Data
7.3 Future Extensions
7.3.1 Macros and Style Sheets
7.3.2 XML Extensions to MathML
Appendix A. DTD for MathML
Appendix B. Glossary
Appendix C. Operator Dictionary
Appendix D. Working Group Membership
Appendix E. Informal EBNF Grammar for Content Elements
References