TEXMACS Scheme Developer Guide

TEXMACS Scheme Developer Guide

TEXMACS Scheme developer guide Table of contents 1. Overview of the Scheme extension language . 9 1.1. Why TEXMACS uses Scheme as its extension language . 9 1.2. When and how to use Scheme . 10 User provided initialization les . 10 User provided plug-ins . 11 Interactive invocation of Scheme commands . 12 Command-line options for executing Scheme commands . 12 Invoking Scheme scrips from TEXMACS markup . 13 1.3. General architecture of the Scheme API . 13 Built-in Scheme commands . 14 Extensions to Scheme and further utilities . 14 Internal modules and plug-ins . 15 1.4. The module system and lazy denitions . 15 1.5. Contextual overloading . 17 1.6. Meta information and logical programming . 18 1.7. The TEXMACS content model . 19 Passive documents and Scheme trees . 19 Active documents and C++ trees . 19 A common framework . 20 Persistent positions inside trees . 20 1.8. Standard utilities . 20 Regular expressions . 21 Dialogues . 21 User preferences . 21 New data formats and converters . 21 2. TEXMACS extensions to Scheme and utilities . 23 2.1. TEXMACS abbreviations . 23 2.2. Matching regular expressions . 23 2.3. Selection of subexpressions . 25 2.4. Logical programming extensions . 26 2.5. Function denition and contextual overloading . 26 Contextual overloading . 27 Other options for function and macro declarations . 28 2.6. Interactive dialogues . 29 2.7. User preferences . 29 2.8. Adding converters . 30 2.9. Keyboard bindings . 30 2.10. Dening menus . 30 3. Programming routines for editing documents . 31 3.1. The TEXMACS editing model . 31 5 6 Table of contents Document fragments . 31 Positions inside document fragments . 32 Semantic navigation and further utilities . 33 A worked example . 33 3.2. Fundamental tree modication routines . 35 3.3. High level modication routines . 37 3.4. Path-based navigation . 38 4. TEXMACS buffer management . 39 4.1. Introduction . 39 4.2. Manipulating TEXMACS buers . 39 Basic buer management . 39 Information associated to buers . 40 Synchronizing with the external world . 41 4.3. Manipulating TEXMACS views . 41 4.4. Manipulating TEXMACS windows . 42 5. Scheme interface for the graphical mode . 45 5.1. Low level graphics manipulation . 45 Rationale . 45 Denitions . 45 Manipulation of enhanced trees . 46 Sketch manipulation . 46 Miscellaneous . 47 5.2. Graphics interface between C++ and Scheme . 47 Rationale . 47 Denitions . 48 Coordinate transformations . 48 Grid routines . 48 Selection of shapes . 48 Computations with shapes . 49 6. Extending the graphical user interface . 51 6.1. An introduction to widgets . 51 6.2. Menus and toolbars . 52 6.3. Displaying lists and trees . 53 Displaying lists with enum, choice and choices . 53 Displaying trees with tree-widget . 53 Default data roles . 54 Using commands . 54 Examples . 55 An example using data roles . 55 An example using the buer tree . 55 An example with the side tools . 56 6.4. Dialogs and composite widgets . 56 6.4.1. Composite widgets . 57 6.5. Forms . 58 Table of contents 7 6.6. Containers, glue, refresh and co. 58 6.6.1. Attribute widgets . 58 6.6.2. Container or layout widgets . 59 6.6.3. Glue widgets . 60 6.6.4. Refresh widgets . 61 6.7. Widgets reference guide . 61 7. Writing TEXMACS bibliography styles . 65 7.1. Introduction . 65 7.2. Example of a simple bibliography style . 65 7.3. Scheme functions for writing bibliography styles . 66 7.3.1. Style management . 66 7.3.2. Field related routines . 66 7.3.3. Routines for structuring the output . 67 7.3.4. Routines for textual manipulations . 67 7.3.5. Miscellaneous routines . 68 8. About the API documentation . 69 8.1. The TEXMACS le system . 69 8.1.1. A tmfs primer . 69 8.1.2. The TEXMACS lesystem . 69 8.1.3. Implementing a handler . ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    139 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us