REC-MathML-19980407; revised 19990707
Mathematical Markup Language 1.01 Specification
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 Mathematical 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 Mixed Markup Examples
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 Script and Limit 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
--
Index of All Content Elements
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 Overview of Syntax and Usage
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
5. Mixing Presentation and Content
5.1 When to Use Mixed Markup
5.1.1 Why Two Different Kinds of Markup?
5.1.2 Reasons to Mix Markup
5.2 How to use Mixed Markup
5.2.1 Presentation Markup Contained in Content Markup
5.2.2 Content Markup Contained 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
6.2.6 Additional Entity Set Grouping
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 Objects 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
Appendix F. Default Semantic Bindings for Content Elements
Appendix G. MathML 1.0 Changes
References