An integrated development environment for ... - Semantic Scholar

6 downloads 0 Views 196KB Size Report
(3) Vannevar Bush [Bush 1945] was the first to envision hypertext systems. His fictitious Memex used storage devices made of film and cardboard and the con-.
An integrated development environment for interactive mathematical documents MANFRED PETER

A practical tool is presented for creating interactive multimedia hypertexts with mathematical content. Existing software like LATEX and special Java classes for mathematical purposes are integrated into a general purpose XML editor. The author of a mathematical presentation can test its interactive functionality in the editor. Through the use of XML syntactical errors are prevented and a clear interface between the document model and the interactive functionality is established. Thus the system can be easily adapted to different document types. The finished presentation runs on any platform with a Java runtime engine version 1.4 or higher. Categories and Subject Descriptors: D.2.2 [Software Engineering]: Design Tools and Techniques—user interfaces; D.2.6 [Software Engineering]: Programming Environments; H.5.1 [Information Interfaces and Presentation]: Multimedia Information Systems—hypertext navigation and maps; H.5.2 [Information Interfaces and Presentation]: User Interfaces—graphical user interfaces; H.5.4 [Information Interfaces and Presentation]: Hypertext/Hypermedia; I.7.2 [Document and Text Processing]: Document Preparation—hypertext/hypermedia General Terms: Design, Languages Additional Key Words and Phrases: Latex, XML, Java, mathematical presentation, virtual reality

1.

INTRODUCTION

First I will explain what the three terms interactive multimedia hypertext (IMMH) mean in this paper: (1) An interactive document does not only contain static elements like text and pictures and dynamic elements like movie and sound clips but can also react to the reader’s input in a complex way, e.g. by doing a calculation, performing a search, drawing graphs. The term interactive mathematical document normally is used in the sense of an e-learning environment. While there is an overlap in these two meanings it is the first one which is relevant here. (2) Most printed documents of a technical nature are already multimedia documents in the sense that they not only contain text but also images and graphics. But these are static media. An electronic document, on the other hand, can contain video and sound. Another possibility are step by step demonstrations of mathematical algorithms. (3) Vannevar Bush [Bush 1945] was the first to envision hypertext systems. His fictitious Memex used storage devices made of film and cardboard and the control logic was electro-mechanical. The basic idea was to break up the linear flow of text, pictures and other pieces of information by introducing hyperlinks between non-adjacent pieces. Since these cross-references are not static as in a printed document but dynamic (i.e. activating the hyperlinks usually is accomStiftstr. 10, 69190 Walldorf, Germany, [email protected] Permission to make digital/hard copy of all or part of this material without fee for personal or classroom use provided that the copies are not made or distributed for profit or commercial advantage, the ACM copyright/server notice, the title of the publication, and its date appear, and notice is given that copying is by permission of the ACM, Inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists requires prior specific permission and/or a fee. c 20YY ACM 0000-0000/20YY/0000-0001 $5.00

ACM Journal Name, Vol. V, No. N, Month 20YY, Pages 1–0??.

2

·

Manfred Peter

panied by a change of view of the whole document) a much livelier presentation of the material results. The information contained in hyperlinks belongs to a higher semantic level and thus adds some sort of additional dimension to the document. With todays technology IMMHs with a rich structure can be created. Physical devices like hard discs, CDs and DVDs offer ample storage space. The clock rate of CPUs allows dynamic media to be displayed in real time. Graphical user interfaces are build on metaphors that allow the manipulation of data in an intuitive way and without knowledge of the underlying technology. In mathematics, IMMHs are an interesting supplement to classical print documents. In the latter basically two media can be used: ordinary text enhanced with special mathematical symbols, and pictures. Both are static. In an IMMH dynamic media like movie and sound clips, and above all interactive programs can be used to illustrate a mathematical concept or algorithm. Sometimes they can be used to give a physical realization of a mathematical object in a virtual reality space. This is of particular interest for mathematical objects which have no realization in physical space or for which such a realization is difficult to manufacture. For instance, in the old days three dimensional wire models of geometric surfaces were quite popular because they can be touched and examined from all sides. But there is a limit on the complexity of the surface which can be realized in physical space. Furthermore, the influence of parameter changes on the shape of the surface is difficult to simulate. The design of the MPEditor package was guided by the following questions: (1) What media formats are necessary for a mathematical IMMH? (2) How much technical knowledge needs the author about the internal workings of the authoring tool? (3) What software besides the IMMH is necessary on the reader’s side? There is simply just one system that is best adapted to typesetting mathematical documents: TEX together with its many macro packages. While initially this system was solely used to create printed documents, nowadays the various viewers for DVI, Postscript and PDF files – due to the increase in processor speed – can be used for online viewing TEX documents. Macro packages allow the inclusion of pictures and of hyperlinks to other parts of the document and to the outside world. Thus in academic environments a mathematical demonstration package usually consists of two separate parts: The software that contains the mathematical algorithms, and a DVI-, Postscript- or PDF-file with some explanations of the mathematical background and the usage of the package. Sometimes a communication between these two parts is established in the form of a help system (e.g. in Mupad, which uses HyTeX as a help viewer). If there is no need for speed optimization or special function libraries the software often is written in Java for platform independency. The mathematical text is contained in HTML pages which include the Java classes as applets, and the whole presentation is displayed in a web browser. With a tool like Latex2html it is easy to translate a LATEX source code into HTML pages. At first glance it seems that this combination is the ideal platform for mathematical IMMHs: Platform independency, a universal programming language for the interactive parts, high quality mathematical text, and no specialized viewer must be installed. But a lot of improvements are necessary to get a tool suitable for practical work: ACM Journal Name, Vol. V, No. N, Month 20YY.

An integrated development environment for interactive mathematical documents

·

3

(1) Latex2html basically produces a one-to-one copy of the printed document that can be displayed in a browser. But the psychology of reading and navigating is in electronic documents quite different from that in static print documents. Therefore Latex2html was extended by Perl scripts to produce a much more screen friendly layout and a better navigation system. Both are taken from the MathePrisma web project [Frommer et al. ]. New LATEX macros were defined to structure the document and include multimedia and enhanced hypertext functionality. (2) Apart from hyperlink functionality, Latex2html adds no dynamic components to the static text. Java classes were written with which ordinary and mathematical text can be included dynamically into the static text. Parts of the presentation can be included in layers which appear to be lying over the main text of the presentation. Static and dynamic images are supported, and short hints can be displayed in a bubble help. (3) Some standard functions were added which are likely to be used in many mathematical presentations: A calculator can be presented to the user, and a function plotter can be used to display graphs of functions dynamically. If appropriate the author can make a lot more functionality of the plotter available to the reader. (4) An IMMH should not only present a collection of separate components to the reader. Rather the components should be tightly integrated into the whole presentation. Dynamical text is one possibility. Furthermore an abstract class was created which allows extension classes to exchange data even if they are located at different parts of the presentation. (5) Dynamic HTML could be used for the above mentioned extensions of the Latex2html output. But the DOMs of the major web browsers are all different, and a lot of them have bugs. In order to avoid the frustration of supporting them, a Java class is provided which serves as the main application class of the presentation and which displays the HTML code together with the embedded Java classes. In principle, with a Latex2html/Java based system the technical knowledge required on the side of the author is moderate. Today most mathematicians know LATEX, and in order to write programs for interaction with the reader, some knowledge of the used programming language is of course necessary. But it turns out that the very hybrid nature of this approach gives rise to some problems. In an IMMH a lot of interdependencies between different parts of the document exist, and they have their analogues in the document source code. That means that the new LATEX macros depend on one another and must occur in the correct order. A lot of parameters for these macros must be remembered or else looked up in the documentation. Finally, error messages during the translation from LATEX into HTML and during parsing of the author’s scripts (controlling the interactive actions) come from low lying parts of the system. Therefore they can only be interpreted with knowledge of the technical details of the translation process. Using XML as the document source format provides a solution to this problem. It serves several purposes: (1) The heterogeneous nature of the source code (LATEX macros, pure HTML code, scripts for interaction) is hidden beneath a uniform layer of XML code. (2) A DTD and a validating editor prevent errors from misplaced or missing LATEX macros. ACM Journal Name, Vol. V, No. N, Month 20YY.

4

·

Manfred Peter

(3) If the editor supports CSS and plugins for screen display then some sort of WYSIWYG development is possible: Plugins can render complex visual representations of tags and perform certain consistency checks which are not covered by the DTD. (4) Plugins can also interprete scripts for interaction, thus enabling the author to test and debug them interactively during editing. We can expect a reader of a Java based IMMH to have a Java Runtime Environment already installed on his system. Nowadays Java is a standard part of many operating systems or can easily be downloaded through the Internet. More than that should not be expected on the reader’s side. The ultimate goal is to create IMMHs than can be viewed as easily as Postscript or PDF documents without complicated installation processes: Download, double-click, view. 2.

COMPARISON WITH OTHER SYSTEMS

Powerful general purpose authoring environments like Director [Macromedia ] and Toolbook [SumTotal ] can be used to create electronic brochures, catalogues, product presentations, e-learning solutions, etc. But they lack specialized functions to create mathematical text, and their scripting languages are not well suited to implement mathematical algorithms. So these components must be created outside the authoring environment and included as separate objects into the presentation. Thus the multimedia components are not integrated into the mathematical text, and they do not communicate with each other. There are a couple of tools to produce electronic documents from LATEX (see [Goossens and Rahtz 1999] for a thorough discussion): pdfTeX [Thanh ] produces PDF output, Latex2html [Moore ] and Tex4ht [Gurari ] produce HTML output, Texexplorer [IBM ] is a browser plugin that reads LATEX files directly, and WebEQ [DesignScience ] creates an applet that displays a special dialect of TEX and LATEX. Furthermore, in [Goossens and Rahtz 1999] a discussion of XML as a source format for mathematical text can be found and how it can be transformed into LATEX, HTML and MathML. All these tools produce one-to-one copies of printed documents with the exception that they are read from the screen rather than from paper. This is suitable for the distribution of documents over the Web, but produces no IMMHs. Computer algebra systems like Maple [Maplesoft ], Mathematica [Wolfram ] and Mupad [Fuchsteiner and Oevel ] have notebooks but they do not qualify as IMMHs. In fact they present to the reader all the technical details of the algorithms and give to the author only limited control over the GUI. Outside the authoring environment, the notebooks can only be read with a special viewer. Another system comes very close to fulfilling all the requirements which were put forward in this paper. The authoring environment Mathwright [White ] is designed for the special purpose to create IMMHs with mathematical content. Unfortunately it is only available on the Windows platform. While this may be acceptable as far as the authoring process is concerned it is totally unacceptable when it comes to the finished IMMHs. The presentations created with Mathwright use ActiveX controls and thus can be run only on the Windows platform. The layout of the documents created with the MPEditor package comes from the web project MathePrisma [Frommer et al. ]. The script Latex2mp initially was a tool to translate LATEX source files into HTML pages which can be displayed directly in a web browser. While the layout stayed the same, the MPEditor package now creates standalone presentations. Furthermore, the system can be easily adapted to different layouts and document structures (see section 5) ACM Journal Name, Vol. V, No. N, Month 20YY.

An integrated development environment for interactive mathematical documents

3.

·

5

SYSTEM ARCHITECTURE

The fundamental design principle for MPEditor is the reuse of existing software. In this way difficult tasks can be delegated to the people who do them best. The most important part of this decision is the use of LATEX/Latex2html as the basis of the system. Java classes for displaying mathematical formulas and plotting functions and the Beanshell interpreter for the author defined interactive functionality round out the tool. All this software was created by others. My one genuine original contribution is the integration of all these standalone components into one single tool. 3.1

General

The MPEditor package contains the following components: —Perl scripts that extend the Latex2html processor. —Images and HTML files for layout and navigation framework of the generated MathePrisma module. —Predefined Java classes for interactive elements and a browser class that displays the static and dynamic elements and handles the interaction between them. —LATEX macros that control the flow of information during the compilation and insert native HTML code in cases where it must be done before the Latex2html run. They create the layout of the module, insert references and hyperlinks and all predefined and author defined Java classes. —The shell script Latex2mp on top of the preceding parts that coordinates LATEX, Latex2html and shell commands. These components are sufficient to generate MathePrisma modules from LATEX source code, Java classes and Beanshell scripts. Since Latex2mp works on data files without user interaction it can be included in an automated make process. For interactive production more components are available: —A DTD that describes XML source files for MathePrisma modules. —An XSLT that translates the XML source files into LATEX source files that can be processed by Latex2mp. —A CSS for displaying the XML source files with the validating editor Morphon. —Java plugins for Morphon. They provide interactive editing and testing capabilities for mathematical formulas, images, predefined and author defined Java components, Beanshell scripts and references. A consistency check for hyperlinks and the conversion into a MathePrisma module can be started from a special plugin. The sources of a MathePrisma modul consist of: —An XML or LATEX file that contains the static text, hyperlinks and references (to images, Java classes and Beanshell scripts) —Images —Author created Java classes for interaction —Beanshell scripts for the communication between Java classes and build-in functionality of the browser class During the generation of a MathePrisma module from LATEX source code a main issue is the flow of information from one part of the source code to another. If we would use LATEX for the conversion we could use the full strength of TEX commands in our macros. But Latex2html immitates only certain features of LATEX. ACM Journal Name, Vol. V, No. N, Month 20YY.

6

·

Manfred Peter

In particular, file input and output is not available and \newcommand cannot be nested. One option would be to extend the Perl scripts of Latex2html. Due to my lack of knowledge of the architecture of Latex2html and because the existing installation should not be touched I used another method: During two runs of LATEX the necessary information is collected in an auxiliary file in the form of \newcounter and \def statements. Here LATEX is necessary since Latex2html has no \openout and \write commands. The auxiliary file is included at the top of the source file and therefore automatically read during the following Latex2html run. Thus we do not need \read in Latex2html. With this solution only three of the Perl scripts of Latex2html had to be touched. When the generated module is executed the Java classes need some of the information which is gathered during the generation process. This is written to the files ’pluginlist.config’, ’layerlist.config’, ’pagelist.config’ and ’config.txt’. The navigation bar at the bottom of the module window is contained in ’Navigati.htm’. The files in the finished module are contained in the folders ’Applets’, ’Images’, ’Navi’, ’Scripts’ and ’pages’. All these files are contained in a folder with the name of the LATEX source files minus its extension ’.tex’. This folder also contains start scripts for Linux/UNIX and Windows. 3.2

Interactive editing and consistency checks

The XML layer of the MPEditor package can only be used with the validating XML editor Morphon [Lunatech ]. With this editor the authoring process is simplified since special plugins are provided which cover the following aspects: —New XML source code must be created with a MathePrisma specific DTD and CSS. In addition the Latex2mp script requires the folders ’Applets’, ’Images’ and ’Scripts’ at the same place where the XML source lies. These requirements are fulfilled automatically when the author uses a special menu entry in Morphon to create the XML source file of a new module. —Ordinary text is written directly from the keyboard. Umlauts and XML/LATEX specific control characters need no special treatment. —A mathematical formula is inserted using XML tags which hold the LATEX source code of the formula. In the editor, the formula is rendered in readable form. Clicking on it opens a sub editor where the formula can be typed in LATEX notation and a preview can be seen. —Author defined Java components (Applets) are contained in JAR files which lie in the ’Applets’ folder. In the source code, they are included with tags that hold the names of the JAR files and of the main class. In the editor the Applets are displayed as in the finished module and can be tested there. An icon button to the right of the Applet opens a sub editor where the data can be typed in. The necessary JAR files are copied automatically to the ’Applets’ folder. —Similarly, predefined Java components (Java Objects) are displayed directly in the editor when the appropriate XML tags are included. In the corresponding sub editor, the name, class, author defined interaction Beanshell script, initialization data and button group can be typed in. All this data is stored in the XML source file except the script which is stored in the folder ’Scripts’. —A special version of Java Objects is the Java link. Its visual representation is a clickable piece of text. A Beanshell script is executed when the link is activated. —Two other tags hold name, text and geometric dimensions of Java components that display mathematical formulas resp. ordinary text dynamically. The text can be changed with Beanshell methods during runtime of the finished module. ACM Journal Name, Vol. V, No. N, Month 20YY.

An integrated development environment for interactive mathematical documents

·

7

—Three different kinds of images can be included. The corresponding tags hold the names of the image files and the link texts, where appropriate. When the associated sub editor is closed, the image files are copied automatically to the folder ’Images’. —References to pages, subpages, layers and equations can be included. The contents of the corresponding tags can be edited in a sub editor which holds the label identifying the target, the link text, the table of contents entry and the comment, where appropriate. Another tag holds the anchor of a page reference and can also be maintained through a sub editor. —All interaction Beanshell scripts can be tested in the editor. They work exactly as in the finished module. —A special menu entry is provided for checking the various link types in the module. For every link it is checked whether a target exists for the given label, and for every target it is checked whether its label is unique. An additional check is performed for grammatical rules that are not expressible through the DTD. —The transformation of the XML source code and the additional data into the finished MathePrisma module requires two steps: First the XML file must be transformed into a LATEX file using a MathePrisma specific XSLT file. Then the Latex2mp script must be run on this file to produce the module. In order to simplify this process a special menu entry is provided which automatically transforms the XML source file into the finished module. —An already existing XML source file cannot be loaded with the standard menu entry since additional information must be generated before the plugins can work properly. For this purpose a special menu item is provided. —An XML source file can be saved with the standard menu entry but the author must be careful to select ISO-8859-1 encoding. Therefore a special menu entry is provided which automatically takes care of this. A couple more XML tags exist for text formating and inserting additional functionality: Centered and highlighted text; linebreaks; tables; bibliographic citations; small hints; links to the calculator. These tags have no special editing functionality. 3.3

Software

Two of the main ingredients of the MPEditor package have been mentioned already: LATEX/Latex2html and Morphon. But there are many more components that were incorporated into the MPEditor package: —HTML files are displayed with the CalHTMLPane package by Andrew J. Moulden: http://www.netcomuk.co.uk/∼offshore/index.html —Beanshell scripts are interpreted with the interpreter by Pat Niemeyer: http://www.beanshell.org —The table–of–contents class is based on code by Matthew L. Wilson: http://www.mattwilson.co.uk/ —The plotter uses the Java Components for Mathematics by David Eck: http://math.hws.edu/javamath/ Furthermore it uses the Java class for symbolic differentiation by Jens–Uwe Dolinsky: http://www.mb.hs-wismar.de/Mitarbeiter/Pawletta/00Uwe/casE.html —Dynamic equations and the TEX plugin for the XML editor use HotEqn, a class for representation of mathematical formulas given in Latex notation: http://www.esr.ruhr-uni-bochum.de/VCLab/software/index.html ACM Journal Name, Vol. V, No. N, Month 20YY.

8

·

Manfred Peter

—The XSLT file uses functionality which is only available in Version 2.0 of the XSLT specification. Therefore the loader plugin uses the free XSLT processor Saxon8 by Michael Kay: http://saxon.sf.net/ The MPEditor package can be downloaded from http://omnibus.unifreiburg.de/∼mp4. 4. 4.1

SOURCE CODE STRUCTURE OF MATHEPRISMA MODULES LATEX

The general structure of the LATEX source code for a MathePrisma module is as follows: \documentclass[10pt]{amsart} \usepackage{html,htmllist,german,etex} \usepackage{graphics,color} \begin{document} \input{macros} \input{aux.tmp} \init{big image}{title}{subtitle}{author}{date}{short title}{small image} \begin{worksheet} \wsexercise{degree of difficulty}{exercise text} ... \end{worksheet} \begin{chapterSingle}{chapter title}{short chapter title}{comment} \parano{catch phrase}{text} ... \end{chapterSingle} \layer{label}{width}{color}{text} ... \begin{subpage}{page title}{label} \parano{catch phrase}{text} ... \end{subpage} ... \begin{chapterMulti}{chapter title}{short chapter title}{comment} \parano{catch phrase}{text} ... \pageend \layer{label}{width}{color}{text} ... \begin{subpage}{page title}{label} \parano{catch phrase}{text} ... \end{subpage} ... \nextpage ACM Journal Name, Vol. V, No. N, Month 20YY.

An integrated development environment for interactive mathematical documents

·

9

\parano{catch phrase}{text} ... \end{chapterMulti} \layer{label}{width}{color}{text} ... \begin{subpage}{page title}{label} \parano{catch phrase}{text} ... \end{subpage} ... \begin{chapterSingle}{chapter title}{short chapter title}{comment} \begin{literature} \bibitem{label} ... ... \end{literature} \end{chapterSingle} \closeoutput \end{document} It is important that the commands appear in the given order, with the exception of the chapterSingle and chapterMulti environments which respectively hold one or several pages. There are three page types available: —Numbered pages within chapters. They appear in the table of contents and in the navigation bar at the bottom of the module. —Unnumbered pages (subpages) which appear in the table of contents but not in the navigation bar. They are outside the navigational order of the numbered pages and can only be reached through links from numbered pages. —Layers which are the same as subpages but which appear as an overlay to the page from which they are linked. They appear neither in the table of contents nor in the navigation bar. Within a page or subpage, the text is grouped into paragraphs with different background colors (parano, parath, paraqu, Experiment). Within a layer this is not possible. At the end of the module there is the bibliography in its own chapter. Within paragraphs various commands are allowed for text highlighting, inclusion of static and dynamic images and external images, references to subpages and layers, tables with background colors according to the MathePrisma style, small hints and references to the build-in pocket calculator. MathePrisma modules generated with the MPEditor package automatically contain two predefined interactive components: a pocket calculator and a plotter. Besides these they can also contain the following components: —Applets —Dynamical formulas and dynamical text —Extensions of the class javaObject Here, despite its name, the class of an applet is derived from the JComponent class. The author develops it outside the MPEditor package. It does not interact with ACM Journal Name, Vol. V, No. N, Month 20YY.

10

·

Manfred Peter

other parts of the MathePrisma module where it is included. It is only optically embedded into the surrounding module. Dynamical formulas and dynamical text display mathematical and plain text respectively. There are Beanshell methods which can be used to set the content during runtime. These elements can be used to embed the result of a calculation or some other information into the surrounding text of the module. Four predefined extensions of the class javaObject are included in the MPEditor package: input, button, checkbox, radiobutton. For every instance of javaObject a Beanshell script can be defined which is executed when the javaObject’s executeScript method is called. The predefined extensions call this method when the reader presses the Return key (input) or clicks the button (button, checkbox, radiobutton). Thus the author can change the behaviour of the element without changing the class. All changes to the script can be done in the XML editor, and there it can also be tested. The Beanshell methods setVal and getVal can be used to exchange information between instances of javaObject. Authors can also define their own extensions of javaObject. An extension will possibly call the executeScript method as a reaction to a change in its GUI. This makes sense for generic extensions of javaObject which will be reused in many places. For very specialized extensions which normally would be of type applet but must exchange information with other applets, it might be more convenient to program the whole functionality in the class and not use scripts at all. For this case the setVal and getVal methods can also be called in the class itself. 4.2

XML

In principle there is a one-to-one correspondence between tags and LATEX macros that can be seen from the naming convention. On a very low level however, there are tags which have no equivalent within the LATEX macros (they hold technical information for the XML editor) or which correspond to parameters of the macros. With suitable entries in the CSS of the XML editor these technical tags are hidden from the author in the tree view of the XML document. Only those tags are shown in the tree view that have a counterpart among the LATEX macros. This is helpful when a particular tag shall be selected for editing, inserting or deleting. The DTD reflects the informal rules given above (see 4.1) but with some restrictions. The finished MathePrisma modules thus become simpler and easier to navigate. The root node of the document tree is . The global structure of the document is given by the definition The first seven tags correspond to the parameters of the LATEX macro \init. The worksheet and bibliography tags are optional. The element definition for and is Here again the first three tags correspond to the parameters of the LATEX macros \begin{chapterMulti}...\end{chapterMulti} and \begin{chapterSingle}...\end{chapterSingle} ACM Journal Name, Vol. V, No. N, Month 20YY.

An integrated development environment for interactive mathematical documents

·

11

The tag holds the paragraphs of the chapter. Its element definition is The tag corresponding to subpages has a similar definition with two additional tags corresponding to the parameters of the LATEX macro \subpage. So far we discussed the part of the DTD that corresponds the structural LATEX macros. Now the functional part of the DTD follows. The definitions of the lowest structural tags
ParaNo (Title,Latex)> ParaTh (Title,Latex)> ParaQu (Title,Latex)> Experiment (Title,Latex)> Layer (Label,Width,Color,LayerBody)>

contain tags corresponding to parameters of the associated LATEX macros, and tags that hold the content proper of the MathePrisma module. The latter have almost identical definitions: The tags and make no sense in since they use the layer themselves. They contain textual links that show the build-in pocket calculator and an author defined image respectively. The tag defines a place that can be referenced by . The latter represents a textual link that, when pressed, brings up the page on which the former is located. , and refer to subpages, equations and layers. They are also omitted from the tag. The same is true for which holds a reference to the bibliography. The following tags have a complex functionality and are therefore rendered in the editor by plugins: , and contain mathematical formulas in TEX notation that appear in the text or on a line by themselves or with an additional equation number, respectively. contains a JComponent that does not exchange data with the surrounding MathePrisma module. contains predefined and author defined Java objects which extend the class javaObject and which communicate with one another and with the surrounding MathePrisma module through Beanshell scripts. contains only a Beanshell script that is executed when the reader of the MathePrisma module activates a textual link. and contain dynamic formulas and dynamic text respectively. Beanshell scripts can dynamically write formulas and texts in the places marked by these tags. includes a static image in the text and a dynamic one. That means that moving the mouse over the picture shows a second picture. ACM Journal Name, Vol. V, No. N, Month 20YY.

12

·

Manfred Peter

With a table is included in the text whose style fits into the MathePrisma layout. With a piece of text can be colored in red and inserts a small light bulb into the text. If the mouse moves over it the bulb lights up and a short explanatory text is displayed next to it. , and
format the text, the first by centering it, the second by starting a new paragraph and the third by breaking the line and starting a new one. 5.

EXTENSIBILITY

So far we discussed the roles of reader and author of a MathePrisma module. The system architecture was specially designed to meet their requirements. But there are also certain advantages for the developer who wishes to extend the MPEditor package itself. In order to add a new command to the package the following steps are necessary: (1) A new macro is added to Latex2mp. (2) One or several new XML tags and their syntactic rules are defined in the DTD. (3) In order to connect the first two parts, the XSLT is extended by rules which transform the new XML tags into the new LATEX macro. (4) The visual appearance of the new XML tags in the Morphon editor is defined in the CSS file. If the style commands are not sufficient or a sub editor is desired, the next step is required. (5) A plugin is written and associated with the new XML tags in the CSS file. The above steps can be performed and tested independently. No knowledge of the internal workings of the XML editor and the basic Java classes is necessary. 6.

CONCLUSION

The central theme of this paper is to show how existing, highly specialized software can be integrated into an authoring environment for mathematical presentations. A high degree of homogeneity and usability can be achieved through an XML based document concept based on a DTD which prevents syntactical errors and is the basis for semantical checks. The presentation can be tested directly in the editor. On the author’s side, no knowledge of the technical workings of the system are required. The finished presentation runs on any platform with a Java runtime environment of version 1.4 or higher. REFERENCES Bush, V. 1945. As we may think. The Atlantic Monthly. DesignScience. Webeq. http://www.dessci.com/en/products/webeq. Frommer, A., Scheid, H., Krivsky, S., and Blankenagel, K. Matheprisma. http://www.matheprisma.de. Fuchsteiner, B. and Oevel, W. Mupad. http://www.mupad.de. Goossens, M. and Rahtz, S. 1999. The LaTeX Web Companion: Integrating TeX, HTML, and XML. Addison-Wesley. Gurari, E. M. Tex4ht. http://www.tug.org/applications/tex4ht/. IBM. Texexplorer. http://www.ibm.com. Lunatech. Morphon. http://www.morphon.com. Macromedia. Director. http://www.macromedia.com. Maplesoft. Maple. http://www.maplesoft.com. Moore, R. Latex2html. http://www.latex2html.org. SumTotal. Toolbook. http://www.sumtotalsystems.com/toolbook/index.html. Thanh, H. T. pdftex. http://www.tug.org/applications/pdftex/. White, J. E. Mathwright. http://www.mathwright.com. Wolfram, S. Mathematica. http://www.wolfram.com. ACM Journal Name, Vol. V, No. N, Month 20YY.