Chapter 2. Features

Table of Contents

Standard conformance
Web standards
SVG
Standards in sMArTH
Rich Mathematical Content
Easy to install
Easy to use
Good Documentation

Standard conformance

Web standards

The World Wide Web is curently subject to impressive standardization efforts. Although the most commonly used Web protocols are in fact very simple (such as HTML), the way different browsers chose to implement them varied greatly. This has led to the costly and futile practice of creating multiple versions of nonstandard markup and code, each tuned to the nonstandard “features” of a particular browser. By releasing browsers that failed to consistently support standards, manufacturers needlessly fragmented the Web, injuring designers, developers, users, and businesses alike.

At this time, the largest part of websites is obsolete. Spaghetti code, deeply nested table layouts, font tags, and other redundancies make the users wait endlessly for those pages to load, some of them only to discover with frustration that the site is actually inaccessible to them. And this happens just because they use the “wrong” browser. Among those, most frequently hurt are people with disabilities or special needs. Moreover, the mixing of presentation and content makes automated processing hardy possible, thus making the Web hostile ground for both human and machine alike. However, you should not despair, things have started to change.

The World Wide Web Consortium (W3C) is the most important standard body that produces standards for the Web. These standards are carefully aimed at technologies that deliver the greatest benefits to the greatest number of web users, while ensuring the long-term viability of any document published on the Web. Designing and building with these standards simplifies and lowers the cost of production, while delivering sites that are accessible to more people and more types of Internet devices. Although the W3C names the documents it issues recommendations, they are the standards that everyone should adhere to when publishing on the Web.

SVG

Scalable Vector Graphics (SVG) is an XML markup language for describing two-dimensional vector graphics. SVG lets you design Web pages with high-resolution graphics that can contain sophisticated elements, such as gradients, animation, and filter effects, by just using plain-text XML. This doesn’t imply that pages will take more time than they do today, as vectorial graphics have the potential to be much smaller than bitmap pictures, and additional gzip compression can be applied on SVG for excellent results. Moreover, SVG text and graphics can be styled using Cascading Style Sheets (CSS), which makes it a very flexible and powerful document standard.

In addition to the XML-based file format, the SVG platform defines an API for graphical applications. Like many other W3C standards, SVG follows the Document Object Model (DOM) standard. This means that script languages such as ECMAScript can be used to access and manipulate SVG page components at runtime. The scripts are used to handle mouse and keyboard events, or even implement the logic of more sophisticated Web applications. With its powerful scripting and event handling support, SVG can be used as a platform upon which to build graphically rich applications and user interfaces. The developers get to use a collection of open standards and are not tied to one particular implementation, vendor or authoring tool.

Standards in sMArTH

sMArTH is built on open web standards. The editor itself uses a SVG interface and the application logic is implemented in ECMAScript using the DOM. Both MathML and LaTeX are supported as exporting formats. Not surprisingly sMArTH can also export equations in the SVG format.

One major difficulty in implementing sMArTH was that there are very few browsers at this time that support all the standards we need for our project.

Version 0.05 of sMArTH relies on the following standards:

Name: Scalable Vector Graphics (SVG)
Version: 1.1
Formal: W3C Recommendation
Date: 14 January 2003
Name: Document Object Model (DOM) Level 1 Specification
Version: 1.0
Formal: W3C Recommendation
Date: 1 October, 1998
Name: Document Object Model (DOM) Level 2 Core Specification
Version: 1.0
Formal: W3C Recommendation
Date: 13 November, 2000
Name: Document Object Model (DOM) Level 2 Views Specification
Version: 1.0
Formal: W3C Recommendation
Date: 13 November, 2000
Name: Document Object Model (DOM) Level 2 Events Specification
Version: 1.0
Formal: W3C Recommendation
Date: 13 November, 2000
Name: Document Object Model (DOM) Level 2 Traversal and Range Specification
Version: 1.0
Formal: W3C Recommendation
Date: 13 November, 2000
Name: Document Object Model (DOM) Level 2 Style Specification
Version: 1.0
Formal: W3C Recommendation
Date: 13 November, 2000
Name: XML Linking Language (XLink)
Version: 1.0
Formal: W3C Recommendation
Date: 27 June, 2001
Name: ECMAScript
Version: 3rd Edition
Formal: Standard ECMA-262
Date: December 1999
Name: Cascading Style Sheets (CSS)
Version: CSS2 Specification
Formal: W3C Recommendation
Date: 12 May, 1998
Name: Mathematical Markup Language (MathML)
Version: 2.0
Formal: W3C Recommendation
Date: 21 October 2003

Rich Mathematical Content

sMArTH will support all the mathematical content from both LaTeX and MathML. This should cover the need of the great majority of users.

Easy to install

In an ideal world sMArTH would need no installation at all. Just access it using an internet browser that has impeccable support for SVG, ECMAScript and DOM while having access to a pan-Unicode font. Typically sMArTH will require some prior setup of your system but that is normally less intrusive than installing a standard application. And as the web standards are gaining in popularity the no-installation scenario is becoming more and more interesting.

Easy to use

sMArTH provides a graphical user interface which simplifies equation editing. Even the most complex equations can be built with simple 'Point and Click' techniques, instead of writing convoluted typesetting code. Editing in sMArTH is a visual process and typically both the mouse and keyboard are used. However, keyboard shortcuts can significantly speed-up the editing process for more experienced users.

Good Documentation

Although we try to keep sMArTH as easy-to-use as possible we are aware of the essential role good documentation plays for the success of our project. We are targeting users with very different backgrounds so we cannot assume prior knowledge of equation editing. Guidance will be present for those who need it.

Additional to this user manual, the source code is also available, so that the most experienced users can always examine it and experiment with it. That is why we have tried to keep things simple and clear, while including comments whenever that was not possible.

Finally, the sMArTH website is the best place to find the latest news about the evolution of the project or get in touch with us. It is there you should ask for help if you get into trouble using sMArTH. By doing this not only will you find a solution to your problem, but also supply the motivation we need to keep improving the software.