The Design of the Mathspad Editor
Total Page:16
File Type:pdf, Size:1020Kb
The design of the MathSpad editor Citation for published version (APA): Verhoeven, P. H. F. M. (2000). The design of the MathSpad editor. Technische Universiteit Eindhoven. https://doi.org/10.6100/IR534418 DOI: 10.6100/IR534418 Document status and date: Published: 01/01/2000 Document Version: Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers) Please check the document version of this publication: • A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website. • The final author version and the galley proof are versions of the publication after peer review. • The final published version features the final layout of the paper including the volume, issue and page numbers. Link to publication General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal. If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement: www.tue.nl/taverne Take down policy If you believe that this document breaches copyright please contact us at: [email protected] providing details and we will investigate your claim. Download date: 28. Sep. 2021 The Design of the Matsad Editor CIP-DATA LIBRARY TECHNISCHE UNIVERSITEIT EINDHOVEN Verhoeven, Richard The Design of the Matsad Editor / by Richard Verhoeven { Eindhoven : Eindhoven University of Technology, 2000 Proefontwerp. { ISBN 90{386-0781-4 NUGI 852 Subject headings: text processing ; mathematics / mathematics ; notation / software systems CR Subject Classification (1998): I.7.2, I.7.1, G.4, H.5.2, D.2.11, D.2.13, K.8.1 Print: UniversiteitsDrukkerij, Eindhoven c 2000 by R. Verhoeven, Schijndel, The Netherlands Cover images: c 1977 by Frank Drake (available on Voyager Golden Record). All rights reserved. No part of this publication may be reproduced, stored in a retrieval sys- tem, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without prior permission of the author. Trademarks: Frame, Photoshop and PostScript are registered to Adobe Systems Incorporated; ANSI is registered to American National Standards Institute; OpenDoc is registered to Apple Computer, Inc.; ArborText is registered to Arbor- Text, Inc.; BeOS is registered to Be Incorporated; GIF is a registered service mark of CompuServe Incorporated; Corel is registered to Corel Corporation; Adept is registered to C-TEXT, Inc.; POSIX is a certification mark registered to the Institute of Electrical and Electronics Engineers, Inc.; IBM and PowerPC are registered to International Business Machines Corporation; MatLab is registered to The MathWorks, Inc.; Microsoft, Microsoft Windows en Powerpoint are registered to Microsoft Corporation; Netscape is registered to Netscape Communications Corporation; CORBA is registered to Object Management Group, Inc.; RealAudio is registered to Progressive Networks, Inc.; IRIX is registered to Silicon Graphics, Inc.; Java, Solaris and ToolTalk are registered to Sun Microsystems, Inc.; Scientific Word is registered to TCI Software Research, Inc.; Linux is registered to Linus Torvalds; Unicode is registered to Unicode, Inc.; UNIX is registered to UNIX System Laboratories, Inc.; FreeBSD is registered to Walnut Creek CDROM, Inc.; Mathematica and MathLink are registered to Wolfram Research, Inc.; WordPerfect is registered to WordPerfect Corporation. This research was financially supported by the Eindhoven University of Technology and the Netherlands Organisation for Scientific Research (NWO). The work in this thesis has been carried out under the auspices of the research school IPA (Institute for Programming research and Algorithmics). The Design of the Matsad Editor Proefontwerp ter verkrijging van de graad van doctor aan de Technische Universiteit Eindhoven, op gezag van de Rector Magnificus, prof.dr. M. Rem, voor een commissie aangewezen door het College voor Promoties in het openbaar te verdedigen op woensdag 21 juni 2000 om 16.00 uur door Richard Verhoeven geboren te Veghel Dit proefontwerp is goedgekeurd door de promotoren: prof.dr. R.C. Backhouse en prof.dr. P.M.E. de Bra Acknowledgements There are many people who were supportive while the research described in this thesis took place. They all provided useful information on how to improve the system or were helpful in some sense. My supervisor Roland Backhouse, for providing me with this challenging mas- • ters project, which became the long lasting research project. I want to thank him for his patience, his suggestions and the effort he put in finding research funds. Furthermore, I want to thank his family for testing the system and for the Friday evening meals. The former Ph.D. students Henk Doornbos, Paul Hoogendijk, Laurens de Vries • and Ed Voermans, for sharing the room and having fruitful discussions about the different research topics. Furthermore, I want to thank them for testing the system and making suggestions. My fellow student Olaf Weber, for writing part of the system during our com- • bined masters project. The members and former members of the research group in Eindhoven: Eerke • Boiten, Lex Bijlsma, Joop van den Eijnde, Wim Feijen, Netty van Gasteren, Rik van Geldrop, Kees Hemerik, Jaap van der Woude en Gerard Zwaan. The other members of the Ph.D. committee: Professors Paul de Bra, Andries • Brouwer en Lambert Meertens, for reviewing this thesis and giving detailed and useful comments. Several members of the Computing Science department in Utrecht, especially • Lambert Meertens, for pointing out several interesting features which should be incorporated into the system. The School of Computer Science & IT at the University of Nottingham for • 1 funding the final 4 2 months of this project. The members of the Languages and Programming group in Nottingham: Paul • Blampied, Graham Hutton, Claus Reinke and Natasha Alechina, for the dis- cussions on several research topics. My family, for their support and for the regularly scheduled weekend jobs. • And everyone I forgot to mention. i ii To my parents. Contents Acknowledgements i 1 Introduction 9 1.1 The situation . 10 1.2 An example task . 10 1.3 The goal . 11 1.4 Additional goals . 13 1.5 The outline of this thesis . 13 2 Document preparation 15 2.1 Editing models . 15 2.1.1 WYSIWYG vs. markup languages . 15 2.1.2 Structured vs. unstructured. 21 2.1.3 Modal vs. modeless . 22 2.2 Mathematical documents . 24 2.2.1 WYSIWYG systems . 24 2.2.2 Markup languages . 27 2.3 Mathematical systems and theorem provers . 29 2.4 Software documentation . 31 2.5 Conclusion . 32 3 The functional design 33 3.1 Program versus user in control . 33 3.2 Text editing versus structured editing . 34 3.2.1 Text editing . 34 3.2.2 Structured editing . 35 3.3 Fixed grammar versus flexible grammar . 36 3.3.1 Fixed grammar . 36 iii iv CONTENTS 3.3.2 Flexible grammar . 37 3.4 Clipboard versus multiple selections . 37 3.4.1 The clipboard . 38 3.4.2 Multiple selections . 38 3.5 WYSIWYG versus markup codes . 39 3.5.1 WYSIWYG . 39 3.5.2 Markup codes . 41 3.6 Keyboard handling . 42 4 The technical design 43 4.1 Text structures . 43 4.2 Character encoding . 45 4.3 Mathematical expressions . 45 4.4 Combining text and expressions . 48 4.5 Displaying a document . 50 4.6 Templates . 54 4.6.1 Versions . 55 4.6.2 Stencils . 56 4.6.3 Manipulating templates . 56 4.7 Generating markup output . 59 4.8 The window environment . 61 4.8.1 The window elements . 65 4.9 Box structures . 66 4.10 Control characters . 70 4.10.1 Some examples . 72 4.11 Keyboard handling . 78 4.12 Unicode support . 80 5 Integrating tools 83 5.1 Communication between tools . 83 5.1.1 Pipes . 83 5.1.2 Helper applications . 85 5.1.3 Client { server . 86 5.1.4 Dedicated link . 87 5.1.5 Plug-In libraries . 88 5.1.6 Software bus . 89 5.1.7 Object sharing . 90 5.2 Integrating existing tools . 91 CONTENTS v 5.2.1 The interpreted language . 92 5.2.2 Plug-Ins . 97 5.2.3 Menus . 105 5.2.4 Keyboards . 106 5.2.5 Translations . 107 5.2.6 Scripting . 107 5.2.7 Missing features . 107 5.3 An example connection: PVS . 108 5.3.1 The PVS system . 108 5.3.2 The PVS interface plug-in . 110 5.3.3 The definition file . 113 6 Discussion and conclusions 115 6.1 The current system . 115 6.1.1 The learning curve . 116 6.1.2 The interface . 116 6.1.3 Converting legacy documents . 117 6.1.4 Multiple output formats . 118 6.1.5 Additional layout constructions . 119 6.1.6 LATEX and Unicode . 120 6.2 Application areas . 120 6.2.1 Markup for dummies . 120 6.2.2 Teaching and presentations . 120 6.2.3 Interface for mathematical engines . 121 6.2.4 Literate programming . 122 6.3 Rebuilding the system . 122 6.3.1 New technology .