Table of Contents
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.
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.
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:
sMArTH will support all the mathematical content from both LaTeX and MathML. This should cover the need of the great majority of users.
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.
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.
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.