home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1995-03-08 | 119.3 KB | 3,320 lines
<!DOCTYPE BOOK PUBLIC "-//Synex Information AB//DTD Manual Version 1.3//EN"[ <!ENTITY % PRO "IGNORE" -- for marked sections, relevance only for the PRO version --> <!ENTITY % windows "INCLUDE" -- for marked sections, relevance under Windows -- > <!ENTITY % mac "IGNORE" -- for marked sections, relevance under Macintosh --> <!ENTITY % motif "IGNORE" -- for marked sections, relevance under Motif --> <!ENTITY sp "SoftQuad Panorama"> <!ENTITY p "Panorama"> <!ENTITY lt "<"> <!ENTITY gt ">"> <!NOTATION GIF SYSTEM> <!ENTITY #DEFAULT SYSTEM NDATA GIF> <!NOTATION SGML PUBLIC "+//ISO 8879:1986//NOTATION STANDARD GENERALIZED MARKUP LANGUAGE//EN"> <!ENTITY panotr SYSTEM "PANOFTR.SGM" NDATA SGML -- The Tech Ref --> <![ %windows; [ <!ENTITY DocVer "&sp; for Microsoft Windows"> <!ENTITY platform "Windows"> ]]> <?TAGLINK URL URI> <![ %motif; [ <!ENTITY DocVer "&sp; for Unix/Motif"> <!ENTITY platform "Motif"> ]]> <![ %mac; [ <!ENTITY DocVer "&sp; for Macintosh"> <!ENTITY platform "Macintosh"> ]]> <!NOTATION SGML PUBLIC "+//ISO 8879:1986//NOTATION STANDARD GENERALIZED MARKUP LANGUAGE//EN"> ]> <BOOK> <FRONT> <TITLEGRP> <TITLE>&sp; <![ %PRO; [PRO ]]>User's Guide</TITLE> </TITLEGRP> <AUTHGRP> <CORPAUTH><ORGNAME>Developed by Synex Information AB, Sweden</ORGNAME></CORPAUTH> </AUTHGRP> <PUBFRONT> <INFOGRP> <DEFLIST> <TERM>Standard Identification</TERM> <DD><P>&sp; is an SGML System Conforming to International Standard ISO 8879—Standard Generalized Markup Language.</P></DD> <TERM>Published by</TERM> <DD><P><ORGADDR><ORGNAME>SoftQuad Inc.</ORGNAME> <STREET>56 Aberfoyle Crescent, Suite 810</STREET> <CITY>Toronto, </CITY><COUNTRY>Canada </COUNTRY><POSTCODE>M8X 2W4</POSTCODE> <PHONE>(416) 239–4801</PHONE> <FAX>(416) 239–7105</FAX> <EMAIL>Internet: mail@sq.com</EMAIL> <![ %PRO; [ <EMAIL>Technical Support: panorama-support@sq.com</EMAIL> ]]> </ORGADDR></P></DD> <![ %PRO; [ <TERM>Developed by</TERM> <DD><P><ORGADDR><ORGNAME>Synex Information AB</ORGNAME> <STREET>Kallforsvägen 24</STREET> <CITY>Bandhagen, </CITY><COUNTRY>Sweden </COUNTRY><POSTCODE>S-124 32</POSTCODE> </ORGADDR></P></DD> ]]> <TERM>Document version</TERM> <DD><P>&DocVer;</P> <P>First Edition (March 1995)</P> <P>Synex Information AB makes no warranty of any kind with respect to the completeness or accuracy of this document. Synex Information AB may make improvements and/or changes to the product(s) and/or programs described herein at any time and without notice.</P> </DD> <TERM>Copyrights and Trademarks</TERM><DD> <CPYRT><DATE>© 1994-95</DATE> <CPYRTNME><ORGNAME> by Synex Information Aktiebolag, </ORGNAME> <COUNTRY>Sweden.</COUNTRY> </CPYRTNME> </CPYRT> <P><BO>All rights reserved.</BO></P> <P>No part of this document may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means—electronic, mechanical, recording, or otherwise—without the prior written consent of Synex Information Aktiebolag, excepting its legal use as part of the &sp; software and brief quotes used in connection with reviews written specifically for inclusion in a magazine or newspaper.</P> <P>&sp; is a trademark of SoftQuad Inc.</P> <P>Other mentioned brand or product names are trademarks or registered trademarks of their respective holders.</P> </DD> <TERM>Notice</TERM><DD><P>Agencies of the United States Government please note:</P> <P><SC>RESTRICTED RIGHTS LEGEND:</SC> Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at <SC>DFARS 52.227–7013</SC> and in similar clauses in the <SC>FAR</SC> and <SC>NASA FAR</SC> Supplement. <!-- ++++++++++++++++ HyTime nameloc data begins +++++++++++++++++++++++++++++++ --> <NAMELOC ID="TR-MAN"> <NMLIST NAMETYPE="ENTITY">panotr</NMLIST> </NAMELOC> <NAMELOC ID="TR-SSHS"> <NMLIST NAMETYPE="ELEMENT" DOCORSUB="panotr">SSHSEL</NMLIST> </NAMELOC> <!-- ++++++++++++++++ HyTime nameloc data ends +++++++++++++++++++++++++++++++++ --> </P></DD> </DEFLIST> </INFOGRP> </PUBFRONT> </FRONT> <BODY> <CHAPTER ID="WELCOME"><TITLE>Welcome to &sp;<![%PRO;[ PRO]]>!</TITLE> <P>&p; is the first of a new breed of document browsers that improve access to large and highly structured documents, by state-of-the-art navigational aids. It is a browser that reads SGML directly. Building on the solid foundation of an international document standard (<XREF RID="CONCEPTS">ISO 8879 SGML</XREF>), it is truly in a class of its own…crisp and responsive!</P> <P>A short list of features: <LIST> <ITEM><P>Display of documents using a variety of styles.</P></ITEM> <ITEM><P>Display of dynamic table of contents (navigators).</P></ITEM> <ITEM><P>Inline or iconized graphics that can be teared off and zoomed into.</P></ITEM> <ITEM><P>Support for iconized inline elements, tables, and math.</P></ITEM> <ITEM><P>A graphical <XREF RID="OPTODD"><EM>occurrence density display</EM></XREF> to highlight string search results.</P></ITEM> <ITEM><P>Contextual searches, where you use the structure of the document to define what parts are to be searched.</P></ITEM> <ITEM><P>Out-of-the-box support for hyperlinking based on HyTime, the international standard for hypertext.</P></ITEM> </LIST> </P> <P>The PRO version of &p; also supports: <LIST> <ITEM><P><XREF RID="WEBS"><EM>Layered HyTime-based Webs</EM></XREF> to enrich your documents with user-defined links and annotations.</P></ITEM> <ITEM><P>Links to and from selected portions of graphics.</P></ITEM> <ITEM><P>A built-in editor for the design of style files.</P></ITEM> <ITEM><P>A built-in editor for defining dynamic table of contents—so-called <EM>navigators</EM>.</P></ITEM> <ITEM><P>Formatted printing of entire documents, or of selections only.</P></ITEM> </LIST> </P> <P>You may also be interested in the excellent SGML support: More precisely, &p; supports minimal SGML, the core syntax with some useful extensions such as long identifiers (extended <TT>NAMELEN</TT>), the shorttag feature, marked sections, full entity support, and parsing of the local declaration subset.</P> <SECTION ID="ABOUT"><TITLE>About this manual</TITLE> <P>This manual consists of: <LIST> <ITEM><P><XREF RID="WELCOME">Welcome to &sp;<![%PRO;[ PRO]]>!</XREF>, a short introduction to &p; features.</P></ITEM> <ITEM><P><XREF RID="INIT">Getting Started: A short tour of &p;</XREF></P></ITEM> <ITEM><P><XREF RID="CONCEPTS">Basic SGML Concepts</XREF></P></ITEM> <ITEM><P><XREF RID="MENUS">The &p; Menus</XREF></P></ITEM> <ITEM><P><XREF RID="SSHEDIT">Editing Style Sheets</XREF></P></ITEM> <ITEM><P><XREF RID="NAVEDIT">Editing Navigators</XREF></P></ITEM> </LIST> <![ %PRO; [The manual documents both the commercial &sp; PRO, and the free, unsupported version.]]> This version of the manual displays documentation <![ %PRO; [(including PRO features) ]]>relevant for the following platform(s): <![ %windows; [ MS Windows]]><![ %mac; [, Macintosh]]><![ %motif; [, Unix/Motif]]>.</P> </SECTION> <SECTION ID="SUGGEST"><TITLE>Your suggestions</TITLE> <P>We welcome your comments and suggestions on this documentation and on the program. These will be carefully considered for future versions. You can send e-mail to <TT>panorama@sq.com</TT>.</P> </SECTION> </CHAPTER> <CHAPTER ID="INIT"><TITLE>Getting Started: A short tour of &p;</TITLE> <P>This chapter gives you a quick review of central &p; features such as: <LIST> <ITEM><P>Browsing of files using navigators.</P></ITEM> <ITEM><P>String searching documents using markup and the occurrence density display.</P></ITEM> <ITEM><P>Switching style sheets.</P></ITEM> <ITEM><P>Exploring web functionality.</P></ITEM> </LIST> </P> <P>In addition, it describes very briefly some SGML concepts.</P> <SECTION ID="BROWSER"><TITLE>Browsing SGML documents</TITLE> <P>&sp; is a document browser that works in conjunction with NCSA Mosaic or Spyglass Mosaic, document browsers for the World Wide Web (WWW). &p; exists in two flavors: a freely available and non-supported version, and a supported, enhanced PRO version. <![ %PRO; [ This manual includes documentation on features relevant to the PRO version.]]></P> <P>Using Mosaic, you can open any SGML file, and with the proper configuration, Mosaic will launch and display the SGML document using &p;. In the PRO version, this can be done directly from within the &p; application.</P> <![ %PRO; [ <P>To browse an SGML document directly with &p;, you can either select <MENU>Open File</MENU> from the menu <MENU>File</MENU>, or click the corresponding tool bar icon: &openfile.gif;</P> ]]> <FIGGRP> <FIG NAME="PANODEMO.GIF"> <TITLE>&p; displays documents in a resizable window—the document contents wrap to fit. Optionally, the left part of the window contains a dynamic table of contents (a so-called <EM>navigator</EM>) or tree view of the document structure.</TITLE> </FIGGRP> <SUBSECT1><TITLE>Selecting a style sheet</TITLE> <P><EM>&p; style sheets</EM> are separately stored formatting rules that specify how the contents of SGML documents are to be displayed on screen <![ %PRO; [(or printed)]]> by the application.</P> <P><![ %PRO; [<XREF RID="ATTCH">]]>Currently attached<![ %PRO; [</XREF>]]> styles (for the particular class of documents that the document belongs to) are listed at the top of the <MENU>Styles</MENU> menu. Selecting any of these styles updates the browser window to the selected style. The current style is indicated with a checkmark prefix.</P> </SUBSECT1> <SUBSECT1><TITLE>Navigating SGML Documents</TITLE> <P>Normally, the left part of the &p; application window looks like a table of contents, containing headings extracted from the document. This portion of the window is called a <EM>navigator</EM> and is separated from the document contents by a vertical divider bar. The document appears to the right of the bar. The width of the navigator can be changed by dragging this bar horizontally; dragging the bar far to the left removes the navigator display entirely.</P> <FIGGRP><FIG NAME="NAVPM.GIF"> <TITLE>The navigator is used to position the browser window. Each entry is extracted from the document. Entries prefixed with a plus icon sign contain subitems which are revealed by clicking on the icon. The arrow shows your current location in the document.</TITLE> </FIGGRP> <P>The navigator window is used to scroll the browser window to the location of each corresponding navigator entry. The contents of the navigators are taken from the document, so the navigator can be regarded as a subset of the document, used for navigation.</P> <P>In the navigator, some of the entries are prefixed with a plus sign, while others are prefixed with a minus sign. The plus sign indicates that there are sub-items contained by the navigator entry, and that these items can be <EM>revealed</EM> by clicking the plus icon; the navigator will expand and display the contained entries. Correspondingly, a minus sign indicates that the entry has been fully expanded but can be collapsed back again. Finally, some navigator entries are prefixed with a square dot. These items cannot be expanded or collapsed, as they are entries that are at the bottom of the navigator hierarchy. A yellow arrow icon designates the current location in the document.</P> <P>To position the browser contents at a navigator entry, click on the navigator text itself (not the icon that prefixes it). <BO>Try out the navigator to see how it works!</BO> Return to this location by clicking the backtrack button in the tool bar: &backtrck.gif;. This will become active as soon as you've scrolled the browser using the navigator.</P> <P>Equivalently, click on the corresponding navigator entry (the line with the title <EM>Navigating SGML Documents</EM>).</P> <SUBSECT2><TITLE>Switching to an alternative navigator</TITLE> <P>The menu <MENU>Navigator</MENU> displays all of the currently attached navigators. If there is some other navigator available, just pick its name from the list displayed in this menu.</P> <P>To hide the navigator and only display the document, select the menu <MENU>None</MENU>. Equivalently, drag the divider bar far to the left.</P> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>String searching</TITLE> <P>String searching will be covered in detail later. Two valuable string searching features will be covered below.</P> <P>To do a string search in the document: <LIST> <ITEM><P>From the <MENU>Edit</MENU> menu, select the item <MENU>Search&hellip</MENU>.</P></ITEM> <ITEM><P>A dialog will be displayed for entering the search string.</P></ITEM> <ITEM><P>Click the button <BUTTON>OK</BUTTON>.</P></ITEM> </LIST> The search dialog is dismissed as the results of the search are highlighted in the browser. </P> <SUBSECT2 ID="OPTODD"><TITLE>Occurrence Density Display</TITLE> <P>When you perform a string search, a column may appear to the left of the scroll bar; this is the graphical <EM>occurrence density display</EM>. For each hit in the document, there is a thin line at the corresponding position.</P> <P>The usefulness of this simple graphical display is striking: at a glance, you locate all of the occurrences, and immediately see if there is a concentration in some part(s) of the document.</P> <P>Positioning the mouse cursor in the occurrence density display and clicking scrolls the browser to the position represented by the line nearest to the cursor.</P> <P>This graphical aid is <EM>optional</EM> as its display can be suppressed by toggling the corresponding setting in the <MENU>Options</MENU> menu.</P> <FIGGRP> <FIG NAME="SEARCH.GIF"> <TITLE>The <TT>Search</TT> dialog is used to enter strings to be sought. At the far right of the window, next to the scroll bar, is &p;'s <EM>occurrence density display</EM>.</TITLE> </FIGGRP> </SUBSECT2> <SUBSECT2><TITLE>Contextual Searching</TITLE> <P>At times, the graphical feedback provided by the occurrence density display may not be enough; this is the case when searching for a word that is extremely prevalent. (As an example, think of searching for the word <Q>ignition</Q> in a manual on the ignition system of an engine). Fortunately, the SGML methodology of structuring documents hierarchically can be put to good use: you can restrict string searching to any portion of the document (naming any structural component—an <EM>element</EM> in SGML parlance).</P> <P>The subject of contextual searches will be covered in depth later. As an example of what you can do, it is possible to restrict string searching to only <EM>headings</EM>, say, at the topmost level.</P> <P>Because &p; lets you restrict searching to <EM>any</EM> element, you are only limited by the granularity of the document <XREF RID="markup">markup</XREF>!</P> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>Viewing graphics</TITLE> <P>Graphics can be presented either inline—intermixed with the document content—or tucked away behind an icon; clicking the icon opens up a separate window. In both cases, the graphics can be zoomed into. The choice of presentation (inline vs. behind icons) is simply a style sheet setting.</P> <SUBSECT2><TITLE>Tearing off graphics</TITLE> <P>When graphics are presented inline, you may want to keep a copy on-screen, in a separate window, as you scroll on. To do this: <LIST> <ITEM><P>Place the cursor over the graphics.</P></ITEM> <ITEM><P>Select the pop-up menu item <MENU>Tear Off…</MENU> displayed by <![ %windows; [clicking the right mouse button.]]> <![ %motif; [clicking the right mouse button.]]> <![ %mac; [Alt-clicking.]]></P></ITEM> </LIST> </P> <![ %windows;[ <FIGGRP> <FIG NAME="GRRBMENU.GIF"> <TITLE>A copy of an inline graphic is displayed in a separate window by positioning the cursor over the graphics and selecting <MENU>Tear Off…</MENU>from the right mouse button popup menu.</TITLE> </FIGGRP> ]]> </SUBSECT2> <SUBSECT2><TITLE>Graphics Hot Spots</TITLE> <P>In addition, you can link to and from graphics, e.g. to create a hyperlink from a document that describes some object to a graphics that depicts it.</P> </SUBSECT2> </SUBSECT1> <SUBSECT1 ID="WEBS"><TITLE>Webs</TITLE> <P>Webs are containers for user-defined information—such as annotations, links, and bookmarks. Because &p; works in a multi-user, networked environment, it distinguishes between merely <EM>using</EM> a web (displaying its contents), vs. being able to <EM>modify</EM> its contents—to edit it. An open web (that is active and whose contents are displayed) is defined as being <EM>mounted</EM>.</P> <P>Web files use the file suffix <TT>.WEB</TT> by convention. They are text files with SGML/HyTime markup and can thus be browsed by &p; just like any other SGML document.</P> <SUBSECT2 ID="WEBOPEN"><TITLE>Opening and Creating Webs</TITLE> <P>To open an existing web, or to create a new web, do as follows: <LIST> <ITEM><P>Select <MENU>Web Manager…</MENU> from the menu <MENU>Webs</MENU>.</P></ITEM> <ITEM><P>In the Web Manager dialog that appears, pick the button <BUTTON>Mount…</BUTTON> and select the web to open if it already exists.</P> </ITEM> <ITEM><P>If you want to create a new web, enter its filename in the editing window. &p; will then prompt you for a symbolic name used for display in the <MENU>Webs</MENU> menu.</P> </ITEM> <ITEM><P>Once the web has been mounted, its symbolic name will appear in the list of mounted webs in the Web Manager.</P> </ITEM> <ITEM><P>Click on the <BUTTON>OK</BUTTON> button to dismiss the Web Manager dialog.</P></ITEM> </LIST> The symbolic name of the web will now also appear in the <MENU>Webs</MENU> menu. </P> <P>&p; remembers what webs were open and automatically makes them active again when you launch &p;. This information is stored in the settings file <TT>PANORAMA.INI</TT> in the main Windows directory.</P> </SUBSECT2> <SUBSECT2 ID="WEBEDIT"><TITLE>Editing a Web</TITLE> <P>To edit a web, select its name from the <MENU>Webs</MENU> menu. A checkmark prefix by the web shows that it is editable. You can only edit one web at a time, but you can have any number of webs open (active and mounted).</P> </SUBSECT2> <SUBSECT2><TITLE>Web Anchors</TITLE> <P>The information that is stored in webs is always attached to a contiguous selection called an <EM>anchor</EM>. The location of the anchor within the document is stored using SGML and HyTime. This is done automatically by &p;. Even though your initial selection may designate only portions of words, &p; will transform it so that only whole words are addressed. (This is due to the way the corresponding location is stored using HyTime).</P> </SUBSECT2> <SUBSECT2><TITLE>Creating Annotations</TITLE> <P>To create an annotation: <LIST> <ITEM><P>Highlight part of the document.</P></ITEM> <ITEM><P>Select the item <MENU>Annotate…</MENU> from the menu <MENU>Webs</MENU>.</P> <P>Alternatively, select the corresponding tool bar icon: &annotbut.gif;</P> <P>A dialog appears that lets you enter your annotation.</P> </ITEM> <ITEM><P>In the annotation dialog, you may optionally enter a name describing the annotation. This note text defaults to the first words of the highlighted text portion.</P></ITEM> <ITEM><P>After entering the annotation text, click the <BUTTON>OK</BUTTON> button. An icon appears to indicate the presence of your annotation.</P></ITEM> </LIST> </P> <SUBSECT3><TITLE>Naming Web Anchors</TITLE> <P>The naming of web anchors is potentially useful for making semantic distinctions, or to clarify the reason behind an annotation. By combining named anchors with the &p; feature of multiple simultaneous webs, you can <EM>qualify</EM> the web information being added to the document. An example could be reviewers' comments—each supplying one or more webs—and using the naming feature to distinguish between various kinds of critique or comments.</P> <NOTE><P>In the DTD used by &p; for webs, annotations are encapsulated by the <TT>note</TT> tag and the name by a <TT>head</TT> tag.</P></NOTE> </SUBSECT3> </SUBSECT2> <SUBSECT2><TITLE>Creating Bookmarks</TITLE> <P>Bookmarks are initially created in exactly the same way as annotations. <LIST> <ITEM><P>Once the annotation dialog appears, just click in the <TT>Bookmark</TT> checkbox.</P></ITEM> <ITEM><P>You may optionally enter a note describing the bookmark (naming the bookmark).</P></ITEM> </LIST>The bookmark will subsequently appear in the <MENU>Bookmarks</MENU> menu. Picking a bookmark from the menu scrolls the browser to the corresponding location.</P> <NOTE><P>Note that the bookmark remains available as long as the web remains open—even when you are browsing some other document.</P></NOTE> </SUBSECT2> <SUBSECT2><TITLE>Creating Links</TITLE> <P>You can create hyperlinks between selections in any SGML files, where the selections can be either text or graphics.<![ %PRO; [<XREF RID="HOTSPOT"> Links in graphics</XREF> will be covered below.]]></P> <SUBSECT3><TITLE>Begin Link</TITLE> <P>To create a link: <LIST> <ITEM><P>Highlight a portion and select <MENU>Begin Link…</MENU> from the menu <MENU>Webs</MENU>.</P> <P>Alternatively, select the corresponding tool bar icon: &beglink.gif;</P> </ITEM> </LIST> One of the link endpoints—the source anchor—has now been defined. This needs to be connected to a target anchor.</P> </SUBSECT3> <SUBSECT3><TITLE>Connect Link</TITLE> <P>To complete the link, make a selection as endpoint and: <LIST> <ITEM><P>Select <MENU>Connect Link…</MENU> from the menu <MENU>Webs</MENU>.</P> <P>Alternatively, select the corresponding tool bar icon: &conlink.gif;</P></ITEM> </LIST> </P> <P>A dialog appears that lets you optionally name the link source and target anchors.</P> </SUBSECT3> </SUBSECT2> <SUBSECT2><TITLE>Deleting Web Objects</TITLE> <P>Annotations, bookmarks, and link endpoints are all deleted in the same way. There are two ways of removing them: <LIST> <ITEM><P>Position the cursor over the icon of the web object.</P></ITEM> <ITEM><P>Press down the <![ %windows; [the right]]> mouse button and select <MENU>Delete Anchor</MENU> from the popup menu that appears.</P></ITEM> </LIST> Note that in the case of a link, the other link endpoint is not removed, but its icon changes into an annotation icon.</P> <P>Alternatively, select <MENU>Web Manager</MENU> from the <MENU>Webs</MENU> menu: <LIST> <ITEM><P>Select the anchor to delete in the Web Manager dialog.</P></ITEM> <ITEM><P>Press the <BUTTON>Remove</BUTTON> button.</P></ITEM> </LIST></P> </SUBSECT2> <SUBSECT2><TITLE>Closing the Web</TITLE> <P>When you are done editing a web, select it from the menu <MENU>Webs</MENU>: it is the web with the checkmark prefix.</P> <P>If you choose to close the web altogether so that its contents (annotations, bookmarks, or links) are not displayed, select <MENU>Web Manager</MENU> from the <MENU>Webs</MENU> menu. In the Web Manager dialog, select the web and press the button <BUTTON>Dismount</BUTTON>.</P> </SUBSECT2> </SUBSECT1> </SECTION> <SECTION ID="STYLES"><TITLE>Style Sheets</TITLE> <P>The notion of <EM>style sheets</EM> has already been mentioned in passing a few times. As SGML creates a structure upon documents, the tags normally reflect some logical ordering of the information contained in the document. One could also represent layout information directly using tags, but this is not the norm (an exception perhaps being low-level emphasis tags to indicate <BO>bold</BO> or <IT>italicized</IT> text).</P> <SUBSECT1><TITLE>Content-oriented vs. structure-oriented tagging</TITLE> <P>Because this document follows rather closely the tag set of an existing DTD (the ISO 12083 BOOK DTD), most of the tags in this document are structure-oriented: they identify concepts such as headings, footnotes, and paragraphs.</P> <P>In comparison, a content-oriented tagging approach captures the <EM>meaning</EM> of the tagged information. As an example, rather than represent a <EM>sequence</EM> of steps as a <EM>list</EM>, a content-oriented approach could break the information down into pre-conditions, a sequence of steps, post-conditions, and a result.</P> <P>Irrespective of the tagging approach, the information must eventually be formatted. Publishing practices have been refined over centuries for publishing on paper; adequate representations for on-line media are gradually being developed.</P> </SUBSECT1> <SUBSECT1><TITLE>Mapping of elements to styles</TITLE> <P>Style sheets are one way to define the formatting to take place when processing an element; this is the approach being used in &p;.</P> <P>As style sheets are stored separately from the document, you can have any number of them. Also, because the style definitions are based on elements derived from a DTD, <EM>every document</EM> based on that same DTD can share the same set of style sheets.</P> <SUBSECT2><TITLE>Style sheet processing</TITLE> <P>There is an entire chapter devoted to style sheet formatting. Here is just a short list to give an indication of what is possible to achieve using &p; style sheets.</P> <LIST> <ITEM><P>Display element contents using any available font.</P></ITEM> <ITEM><P>Show graphics in-line.</P></ITEM> <ITEM><P>Insertion of text, attribute values, or environment variables before and/or after elements.</P></ITEM> <ITEM><P>Conditional processing of elements, using criteria on attribute values, or on environment variables.</P></ITEM> <ITEM><P>Hiding elements behind icons, so that the contents are displayed in a separate window when the icon is clicked</P></ITEM> <ITEM><P>Optionally, suppressing the display of elements entirely.</P></ITEM> <ITEM><P>Indentation relative to parent elements (useful for lists, e.g.).</P></ITEM> <ITEM><P>Format engineering math and tables.</P></ITEM> </LIST> </SUBSECT2> </SUBSECT1> </SECTION> <SECTION ID="HTMLSGML"><TITLE>The relationship between HTML and SGML</TITLE> <P>HTML is the acronym for the HyperText Markup Language, and consists of a set of tags originally developed at the European laboratory for particle physics CERN. The original HTML was only loosely based on SGML, but the web community is slowly adapting HTML towards SGML. A quick plug in passing: The SoftQuad HoTMetaL editor is an example of that effort.</P> <P>The main distinction between HTML and SGML is that the former can be considered an application of the latter: HTML can be expressed using SGML.</P> <P>The virtue of HTML is its simplicity, allowing for an impressive growth in the number of documents that can be reached across the Web. Its simplicity is however also one of the reasons why various software houses have begun creating their own flavor of WWW browsers, e.g. to accomodate user demands regarding better layout support. Sadly, this trend is counter to the portability of documents, as HTML documents now are gradually becoming dependent on specific browsers. Fortunately, the SGML standard lets you design and encode your documents freely while retaining complete portability.</P> <P>In addition, SGML documents are checked for validity regarding their syntax according to the SGML standard, while many existing HTML documents have been authored with the only requirement that they will display nicely in a World Wide Web browser. In practice, HTML documents are often not valid SGML. This will probably change over time, as more SGML-capable authoring tools become generally available. There is certainly a place for both to fill in the Web community.</P> </SECTION> </CHAPTER> <CHAPTER ID="CONCEPTS"><TITLE>Basic SGML Concepts</TITLE> <P>&p; is a browser for displaying SGML documents. SGML, the <EM>Standard Generalized Markup Language</EM>, is an international standard (ISO/IEC 8879) and defines rules by which to encode documents in a neutral manner, so that documents become independent of hardware and software. Typically, an SGML document's technical lifetime will outlast the computer system on which it has been authored.</P> <P>In essence, SGML is all about modeling information, of imposing structure upon data. The data can be—quite literally—anything, as SGML has ways of handling <BO>any</BO> kind of data. As an illustration of that statement, the only international standard for hypermedia (HyTime) is an application of SGML. Below is a short introduction to SGML concepts and terminology.</P> <SECTION ID="MARKUP"><TITLE>Generalized Markup</TITLE> <P>The information modeling is achieved by <EM>markup</EM>, special codes inside the file that indicate where various data items begin and end; the markup is wrapped around the content it describes. An SGML document thus consists of structure and contents. The markup is inserted using <EM>tags</EM>, which are identifiers surrounded by pointy (angle) brackets.</P> <P>By itself, SGML is entirely neutral, and says nothing about why you would want to tag certain data, nor what you would call the corresponding element. (In contrast, HyTime adds to the SGML methodology a <EM>meaning</EM> (semantics) to certain constructs that are useful when dealing with hypermedia).</P> <P>This tagging scheme is called <BO>generalized markup</BO> because it lets you identify the logical structure of your document, instead of directly specifying its layout. The presentation issues can be addressed e.g. by using <EM>style sheets</EM> that define the presentation of elements.</P> </SECTION> <SECTION ID="ELEMS"><TITLE>The Scoop on Elements</TITLE> <P>The tags surround contents—which in turn is normally also marked up using tags down to a certain granularity. What you choose to define (i.e. to mark up using tags), and what you call the corresponding <EM>element</EM> is up to you. SGML provides the formalism by which you structure the information.</P> <P>As an example out of the blue, assume you were tagging information about cars: While labeling a car as an <TT>automobile</TT> is correct, this is a rather coarse measure of information. Additional data—such as the car's make, color, and mileage—could be contained by the <TT>automobile</TT> tag, but you'd probably want to structure your information object into additional pieces. Elements thus provide a way of breaking up information objects into components and sub-components. It is up to the information provider to distinguish what is meaningful to tag.</P> <P>If you are curious about the tag density of this document, you can have the element encapsulation displayed by toggling <XREF RID="STAGS">Show Tags</XREF> in the <MENU>Options</MENU> menu).</P></SECTION> <SECTION ID="ATTRS"><TITLE>Attributes</TITLE> <P>In SGML, you also have the option of adding information to elements using <EM>attributes</EM>. The attributes are written inside the tags and do not form part of the document contents—an attribute is a piece of information about the element. Examples of attribute uses are:</P> <LIST> <ITEM><P>Assigning an element a unique identifier (so that the element can be cross-referenced)</P></ITEM> <ITEM><P>As a placeholder for a text string used in indexing (generated by some processing step)</P></ITEM> <ITEM><P>A reference to an image file.</P></ITEM> <ITEM><P>As an information repository that provides meta-information about the element itself: a scholar could e.g. put in some degree of certainty, readability index or whatever, that in some way pertains to the contents of the element.</P></ITEM> </LIST> <P>Just like elements, attributes are also named by using identifiers.</P> </SECTION> </CHAPTER> <CHAPTER ID="MENUS"><TITLE>The &p; Menus</TITLE> <P>&p; has a main menu and immediately below it, a tool bar that contains icons for often used commands. At the bottom of the screen is a status bar that echoes application activities. In addition, &p; displays a menu whose contents depend on the location of the cursor when <![ %windows; [the right mouse button is]]> <![ %motif; [the right mouse button is]]> <![ %mac; [the <TT>alt</TT> key and the mouse button are simultaneously]]> depressed. In the text that follows, there are mentions of system configuration files such as <TT>ENTITYRC</TT> and <TT>CATALOG</TT>. Disregard those references for the time being, as they are not important in day-to-day work.</P> <SECTION ID="FILEMENU"><TITLE>The File Menu</TITLE> <P>The File menu contains commands for opening, closing, and printing SGML files. The corresponding menu items will be covered in the next subsections. When you open an SGML file, a certain amount of processing happens. This activity is reflected in the application status bar at the bottom of the screen: While &p; is processing, the status bar displays the various steps in bringing an SGML document fully formatted and navigable onto the screen:</P> <LIST> <ITEM><P>The document instance is fetched, and the corresponding DTD is identified (from the document's so-called <TT>DOCTYPE</TT> declaration). &p; supports the use of the <EM>document type declaration subset</EM>, so any such declarations are processed first; subsequently, the DTD is parsed.</P></ITEM> <ITEM><P>Once the DTD structure is known, &p; reads the document itself and builds up the document structure in memory.</P></ITEM> <ITEM><P>Finally, the style sheet associated with the DTD, and normally a navigator definition as well, are applied in creating the formatted presentation that is displayed on-screen.</P></ITEM> </LIST> <P>The DTD and the files it may include by reference, the style sheet and navigator definition, and the document itself, are fetched through the web server or from the local file system, should they be available.</P> <![ %PRO; [ <SUBSECT1><TITLE>Open File</TITLE> <P>The <MENU>Open File…</MENU> command lets you select any SGML file for display with &p; PRO—which thus works as a stand-alone SGML document browser in addition to its companion role to Mosaic.</P> </SUBSECT1> ]]> <SUBSECT1><TITLE>Open URL</TITLE> <P>The <MENU>Open URL…</MENU> command lets you access any URL on the WWW, for display with &p; or Mosaic.</P> </SUBSECT1> <SUBSECT1><TITLE>Close</TITLE> <P>The <MENU>Close</MENU> command closes the current document. Previously parsed and displayed documents are maintained (if possible) in a <EM>cache</EM>, to speed up a subsequent return to the document during the session.</P> </SUBSECT1> <SUBSECT1><TITLE>Reload</TITLE> <P>The <MENU>Reload</MENU> command forces &p; to reparse the document, by-passing a possible pre-parsed copy of the document in the application document cache. The main reason for issuing this command would be viewing documents that have been edited since first being opened by &p;—a previously parsed copy would not reflect the changes. This capability of immediately browsing an SGML file is a key feature of &p;.</P> </SUBSECT1> <![ %PRO; [ <SUBSECT1><TITLE>Print</TITLE> <P>The <MENU>Print…</MENU> command lets you print the document being browsed, including one or more navigators, to get page-numbered table of contents, lists of figures, etc.</P> <FIGGRP> <FIG NAME="PRINTDLG.GIF"> <TITLE>The Print dialog is used to set various options when printing a document. The hard copy is based on any of the available style sheets, along with optional navigators. In addition, settings such as printing of page numbering, current date, and suppressing of cross-reference resolution on hard copy are available as well.</TITLE> </FIGGRP> <SUBSECT2><TITLE>The Print Dialog</TITLE> <P>The topmost line of the Print dialog displays the currently selected printer, and the document title (if designated) is displayed on the next line. Beneath are two lists displaying available style sheets and navigators for the current document. Any style sheet can be selected for printing, in addition to one or more navigators as well. The following printing options can be set using check boxes in the print dialog:</P> <DEFLIST REND="TABLE"> <TERM>Print Selection Only</TERM> <DD><P>This check box is automatically selected when there are <XREF RID="PRINTSEL">navigator entries</XREF> that have been selected for printing. In addition to printing the corresponding selected portions of the document, direct navigator entry ancestors will also be printed, so that the <EM>context</EM> of the item being printed is preserved.</P></DD> <TERM>Indent Navigator</TERM> <DD><P>This setting indents the printed navigator entries so that the indentation reflects the hierarchy level.</P></DD> <TERM>Top Border</TERM> <DD><P>This check box activates printing of a horizontal rule at the top of each page.</P></DD> <TERM>Bottom Border</TERM> <DD><P>This check box activates printing of a horizontal rule at the bottom of each page.</P></DD> <TERM>Page Number</TERM> <DD><P>This pull-down menu lets you select the placement, if any, of the page number: in the header or footer, with a choice of justification (left, centered, or right).</P></DD> <TERM>Date</TERM> <DD><P>This pull-down menu lets you select the placement, if any, of the current date: in the header or footer, with a choice of justification (left, centered, or right).</P></DD> <![ %windows; [ <TERM><BUTTON>Setup</BUTTON> </TERM> <DD><P>This button lets you adjust the Windows printer settings.</P></DD> ]]> <TERM><BUTTON>Cancel</BUTTON> </TERM> <DD><P>This button lets you exit the dialog without printing the document.</P></DD> <TERM><BUTTON>Print</BUTTON> </TERM> <DD><P>Pressing this button will print the document according to the current settings.</P></DD> </DEFLIST> </SUBSECT2> <SUBSECT2><TITLE>Specifying a background label for printed pages</TITLE> <P>To add a background label to hard copy output, you have to add an entity named <TT>PrnBG</TT> (case is significant) to the style sheet. This is done by editing the style sheet file directly.</P> <NOTE><P>Make sure that the file you are editing is the intended style sheet. To understand &p;'s handling of style sheets, see the section <XREF RID="TR-SSHS">Style Sheet Selection</XREF> in the <XREF RID="TR-MAN">&p; Technical Reference</XREF>.</P></NOTE> <P>A style sheet definition begins with a <TT>DOCTYPE</TT> declaration such as: <LIT> <!DOCTYPE STYLESHEET PUBLIC "-//Synex Information AB//DTD Stylesheet Explorer//EN"> </LIT> </P> <P>The background label is declared in the local declaration subset, such as: <LIT> <!DOCTYPE STYLESHEET PUBLIC "-//Synex Information AB//DTD Stylesheet Explorer//EN" [ <!ENTITY PrnBG "PRELIMINARY! ** DO NOT REDISTRIBUTE **"> ]> </LIT> </P> <P>The label is printed across the page, from the left bottom to the right top. The angle of the baseline is calculated as a function of the output page height and width.</P> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>Printer Setup</TITLE> <P>The <MENU>Printer Setup…</MENU> menu lets you adjust the Windows printer settings.</P> </SUBSECT1> ]]> <SUBSECT1><TITLE>Exit</TITLE> <P>The <MENU>Exit</MENU> command terminates the application.</P> </SUBSECT1> <![ %mac; [ <SUBSECT1><TITLE>Page Setup</TITLE> <P>The <MENU>Page Setup…</MENU> command lets you adjust the printer settings.</P> </SUBSECT1> <SUBSECT1><TITLE>Quit</TITLE> <P>The <MENU>Quit</MENU> command terminates the application.</P> </SUBSECT1> ]]> <FIGGRP ID="PRINTSEL"> <FIG NAME="PRINTSEL.GIF"> <TITLE>Particular portions of a document can be selected for printing through the navigator display. The hard copy output will contain both the contents of the selected items and direct parent navigator entries.</TITLE> </FIGGRP> </SECTION> <SECTION ID="SEARMENU"><TITLE>The Edit Menu</TITLE> <SUBSECT1><TITLE>Edit</TITLE> <P>The <MENU>Edit</MENU> menu lets you copy the current selection into the clipboard.</P> </SUBSECT1> <SUBSECT1><TITLE>Search</TITLE> <P>String searching within a document can be done in either full-text or by restricting the search to specified elements (so-called <EM>contextual search</EM>).</P> <P>The <MENU>Search…</MENU> command brings up a dialog box for entering a search string. When you click on the <BUTTON>OK</BUTTON> button, the dialog is dismissed and the search results are displayed. The search string can optionally be treated as <EM>case sensitive</EM>, meaning that capitalized and lower case letters must match exactly as entered. The button at the far right of the dialog is a pull-down menu for selecting a previously entered search string.</P> <SUBSECT2><TITLE ID="SRFEEDB">Search Result Feedback</TITLE> <P>Occurrences of the sought string are shown highlighted in the document window. If the option <MENU>Occurrence Density Display</MENU> is selected, the far right of the window will contain a graphical display of matches. &p;'s <EM>occurrence density display</EM> corresponds to a scroll bar where each hit is displayed with a horizontal line at the corresponding position. It lets you directly locate the relative position and density of search hits. Placing the cursor over the display and pressing the <![ %windows; [left]]><![ %motif; [left]]> mouse button will scroll the window to that occurrence.</P> </SUBSECT2> <SUBSECT2><TITLE>Contextual Searches</TITLE> <P>&p; lets you perform <EM>contextual searches</EM> using a simple query language. To restrict searches to a specified tag, specify the keyword <TT>in</TT> followed by the tag, enclosed by angle brackets, e.g. <LIT> ignition in <ST> </LIT>will search for occurrences of the word <Q>ignition</Q> within the tag <TT>ST</TT>. It does not matter whether tags are visible or not (see <MENU><XREF RID="STAGS">Show Tags</XREF></MENU> in the <MENU>Options</MENU> menu). The full syntax and possibilities of the query language are defined in the next section.</P> <SUBSECT3><TITLE>The &p; Query Language</TITLE> <P>The symbol <TT>::=</TT> represents the expression <Q>is defined as</Q>. Formally, the syntax of the query language is:</P> <TABLE REND="nogrid"> <TBODY> <ROW> <CELL><P>QueryExpression</P></CELL> <CELL><P>::=</P></CELL> <CELL><P>QueryTerm ( AND | OR ) QueryExpression</P></CELL> </ROW> <ROW> <CELL><P>QueryTerm</P></CELL> <CELL><P>::=</P></CELL> <CELL><P>QueryFactor ( IN | CONT ) QueryExpression</P></CELL> </ROW> <ROW> <CELL><P>QueryFactor</P></CELL> <CELL><P>::=</P></CELL> <CELL><P>TextSpecification | TagSpecification | ( QueryExpression )</P></CELL> </ROW> <ROW> <CELL><P>TextSpecification</P></CELL> <CELL><P>::=</P></CELL> <CELL><P>( char+ | literal )+</P></CELL> </ROW> <ROW> <CELL><P>TagSpecification</P></CELL> <CELL><P>::=</P></CELL> <CELL><P>< tagname ></P></CELL> </ROW> <ROW> <CELL><P>char</P></CELL> <CELL><P>::=</P></CELL> <CELL><P>any characters except the keywords <TT>AND OR IN CONT</TT> or the characters <TT>"</TT> and <TT>'</TT>.</P> </CELL> </ROW> <ROW> <CELL><P>literal</P></CELL> <CELL><P>::=</P></CELL> <CELL><P>any characters delimited by <TT>'</TT> or <TT>"</TT>.</P></CELL> </ROW> <ROW> <CELL><P>tagname</P></CELL> <CELL><P>::=</P></CELL> <CELL><P>a name string, i.e. a generic identifier (GI) of the form <TT>[A-Za-z0-9]+</TT></P></CELL> </ROW> </TBODY> </TABLE> <P>This permits the formulation of queries like:<FOOTNOTE><P>It also allows (a bit surprisingly) for strange queries such as <TT> <IT> in "the wonderful &p; Application"</TT> i.e. find all italics in strings equaling "the wonderful &p; Application". Perhaps some linguist will find a use for this <Q>feature</Q>?</P></FOOTNOTE></P> <TABLE REND="NOGRID"> <TBODY> <ROW> <CELL><P><![ CDATA [<title> in (<chapter> or <section>)]]></P></CELL> <CELL><P>Find all titles within chapters or sections.</P></CELL> </ROW> <ROW> <CELL><P><![ CDATA [John Doe in <footnote>]]></P></CELL> <CELL><P>Find the string <Q>John Doe</Q> in footnotes.</P></CELL> </ROW> <ROW> <CELL><P><![ CDATA [<p> cont <footnote>]]></P></CELL> <CELL><P>Find all elements p that contain footnote element(s).</P></CELL> </ROW> </TBODY> </TABLE> </SUBSECT3> <SUBSECT3><TITLE>Searching for elements with attribute values</TITLE> <P>The <TT>TagSpecification</TT> description is actually a bit more complex, as you can enter one or more attribute values in the search specification: <LIT> John Doe in <person type=programmer> </LIT>Listing multiple attribute name and attribute value pairs such as <LIT> John Doe in <person type=programmer compiler=borland></LIT> will search for elements where <EM>all</EM> conditions are met (a logical AND).</P> </SUBSECT3> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>First</TITLE> <P>The <MENU>First</MENU> command scrolls the window to the first place it occurs in the document.</P> </SUBSECT1> <SUBSECT1><TITLE>Previous</TITLE> <P>The <MENU>Previous</MENU> command scrolls the window to the previous (undisplayed) occurrence of the sought string.</P> </SUBSECT1> <SUBSECT1><TITLE>Next</TITLE> <P>The <MENU>Next</MENU> command scrolls the window to the next (undisplayed) occurrence of the sought string.</P> </SUBSECT1> <SUBSECT1><TITLE>Last</TITLE> <P>The <MENU>Last</MENU> command scrolls the window to the last occurrence of the sought string.</P> </SUBSECT1> <SUBSECT1><TITLE>Back</TITLE> <P>The <MENU>Back</MENU> command lets you go back to places you were just at: this is useful for retracing your steps after exploring one or several documents.</P> </SUBSECT1> <SUBSECT1><TITLE>Forward</TITLE> <P>The <MENU>Forward</MENU> command is used to cycle along a trail of positions that have been backtracked. It undoes the effect of backtracking.</P> </SUBSECT1> </SECTION> <SECTION ID="OPTSMENU"><TITLE>Options</TITLE> <P>The <MENU>Options</MENU> menu groups the toggling of settings that modify the application's behavior and appearance such as the display of the <EM>tool bar</EM> (the row of icons at the top of the screen), the display of the <EM>status bar</EM> (used to echo the application status and general information), and the display of the default <EM>navigator</EM> for each document window.</P> <P>The options are automatically saved between sessions, and are stored in the settings file <TT>PANORAMA.INI</TT> in the main Windows directory.</P> <SUBSECT1><TITLE>Show Tool bar</TITLE> <P>The application tool bar is displayed when <MENU>Show Tool Bar</MENU> is checked. The tool bar groups frequently used commands into a graphical, point-and-click set of buttons.</P> <P>Some buttons are dimmed when they are not applicable: as an example, you cannot create annotations if you have no editable web open, as the annotations are stored in web files. For the same reason, the <BUTTON>Forward</BUTTON> button is dimmed until you <BUTTON>Backtrack</BUTTON>.</P> <SUBSECT2><TITLE ID="TBAR">Tool Bar Buttons</TITLE> <P>Going from left to right, the tool bar buttons are shortcuts for the following functions.</P> <DEFLIST REND="TABLE"> <TERM>&openurl.gif; <BUTTON>Open URL…</BUTTON> </TERM> <DD><P>This button brings up a dialog that lets you enter a URL. &p; will display the corresponding file if it resolves to an SGML document.</P></DD> <![ %PRO; [ <TERM>&openfile.gif; <BUTTON>Open File…</BUTTON> </TERM> <DD><P>This command lets you select an SGML file on the local file system for display with &p;—which thus works as a stand-alone SGML document browser in addition to its companion role to Mosaic.</P></DD> ]]> <TERM>&backtrck.gif; <BUTTON>Backtrack</BUTTON> </TERM> <DD><P>This button lets you return to a previous position, taking into consideration movements within the current file as well as other files reviewed during the session. The trail of saved positions totals 100 locations.</P></DD> <TERM>&forward.gif; <BUTTON>Forward</BUTTON> </TERM> <DD> <P>The Forward command is used to cycle along a trail of positions that have been backtracked. In practice, this button undoes the effect of the backtrack button.</P></DD> <TERM>&tbsearch.gif; <BUTTON>Search</BUTTON> </TERM> <DD><P>This button brings up a dialog to enter a search string.</P></DD> <TERM>&srchbwd.gif; <BUTTON>Previous Hit</BUTTON> </TERM> <DD><P>This button scrolls the document window so that the previous undisplayed search hit is brought to the top of the window.</P></DD> <TERM>&srchfwd.gif; <BUTTON>Search Forward</BUTTON> </TERM> <DD><P>This button scrolls the document window so that the next undisplayed search hit is brought to the top of the window.</P></DD> <![ %PRO; [ <TERM>&annotbut.gif; <BUTTON>Annotate…</BUTTON> </TERM> <DD><P>The annotation button is used to create annotations or bookmarks to a document. This button is dimmed until there is both an editable web and a selection.</P></DD> <TERM>&beglink.gif; <BUTTON>Begin Link…</BUTTON> </TERM> <DD><P>The begin link button is used to create user-defined hyperlinks to a document. This button is dimmed until there is both an editable web and a selection.</P></DD> <TERM>&conlink.gif; <BUTTON>Connect Link…</BUTTON> </TERM> <DD><P>The connect link button is used to to establish a connection with a previously defined link source. This button is dimmed until there is a selection and a source anchor.</P></DD> ]]> <TERM>©sel.gif; <BUTTON>Copy Selection…</BUTTON> </TERM> <DD><P>This button lets you copy a contiguous, highlighted selection into the clipboard.</P></DD> <TERM>&printdoc.gif; <BUTTON>Print Document…</BUTTON> </TERM> <DD><P>This button lets you print the document or just selected portions of it.</P></DD> <TERM>&about.gif; <BUTTON>About…</BUTTON> </TERM> <DD><P>This button brings up a dialog box displaying the name of the application.</P></DD> </DEFLIST> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>Show Status bar</TITLE> <P>Toggling the display of the status bar either reveals or hides the application echo area at the bottom of the main window. This is used to echo the application status (such as the currently open web) and general information during parsing. As an example, the right corner of the status bar displays the number of hits after a string search.</P> </SUBSECT1> <SUBSECT1><TITLE>Launch Subviews</TITLE> <P>The <MENU>Launch Subviews</MENU> setting changes &p;'s mode of operation when displaying elements which are hidden behind icons. When this option is checked, iconized elements are displayed in a window of their own. In the reverse setting, the elements are shown at the top of the browser screen, replacing the screen contents. You can use thus use &p; for presentations in the style of slide shows.</P> </SUBSECT1> <SUBSECT1><TITLE>Use Default Navigator</TITLE> <P>There are normally one or several navigators defined for each DTD. By enabling this option, &p; automatically brings up the default navigator along with the document.</P> </SUBSECT1> <SUBSECT1><TITLE>Occurrence Density Display</TITLE> <P>When this option is checked, a string search result will be displayed graphically as well, with a vertical shaft next to the scroll bar. See the section <XREF RID="SRFEEDB">Search Result Feedback</XREF>.</P> </SUBSECT1> <SUBSECT1><TITLE>Autoshrink Graphics</TITLE> <P>Whenever window contents cannot be displayed due to a narrow window size, a horizontal scroll bar appears. However, when the option <MENU>Autoshrink Graphics</MENU> is selected, graphics that are shown inline are always resized to fit the current browser window size.</P> </SUBSECT1> <SUBSECT1><TITLE>Prevent Flicker</TITLE> <P>The option <MENU>Prevent Flicker</MENU> toggles the method of updating the screen. When the option is enabled, the screen contents are first created in an off-screen buffer (in RAM), and then copied onto the window. This operation is perceived by users as being faster than the alternative of drawing directly onto the screen, which may create a noticeable flicker on slower systems. The latter approach however has the pro of using less application memory.</P> </SUBSECT1> <SUBSECT1><TITLE ID="STAGS">Show Tags</TITLE> <P>The command <MENU>Show Tags</MENU> displays the tag structure of the displayed SGML document. The tags are symbolized by markup icons surrounding the corresponding elements.</P> <SUBSECT2><TITLE>Selection Copying with Show Tags Enabled</TITLE> <NOTE><P>Note that copying a selection into the clipboard when tags are displayed will incorporate the SGML markup into the copy.</P></NOTE> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>Show Hot Spots</TITLE> <P>Hot Spots are clickable web anchors in graphics. When the option <MENU>Show Hot Spots</MENU> is checked, hot spots have a subtle border to indicate their location (regardless of whether the hot spot represents an annotation, link, or bookmark). When the cursor is placed over a hot spot, the cursor appearance changes from the regular arrow to a pointing finger. Toggling this setting using the keyboard shortcut <TT>Ctrl+H</TT> is an efficient way of identifying anchors in complex graphics.</P> </SUBSECT1> <SUBSECT1><TITLE>Mosaic</TITLE> <P>This menu setting is for selecting the HTML browser that &p; will communicate with. Currently supported browsers are NCSA Mosaic and Enhanced Mosaic from Spyglass.</P> </SUBSECT1> </SECTION> <SECTION ID="VIEWMENU"><TITLE>The Styles Menu</TITLE> <P>The <MENU>Styles</MENU> menu is used to select style sheets and to create or remove bindings between a DTD and a style sheet definition. As the DTD defines a class of similar documents, which all share a basic logical structure and set of tags, it makes sense to associate style sheets to the DTD. <EM>All</EM> documents based on a particular DTD can thus share style sheets; &p; lets you select also designate a specific style sheet from within the document using a <XREF RID="TR-SSHS">processing instruction</XREF> to accomodate layout needs of particular documents.</P> <P>The contents of this menu are dimmed when no document is being browsed.</P> <![ %PRO; [ <SUBSECT1 ID="ATTCH"><TITLE>Attach Style Sheet</TITLE> <P>The <MENU>Attach Style Sheet…</MENU> command lets you select a style sheet file (normally with the suffix <TT>.SSH</TT>) to be associated with the DTD of the current document. Attaching style sheets updates the <TT>ENTITYRC</TT> catalog, and the application menu will list the name of the style in its menu list of available styles.</P> <NOTE><P>This menu item is dimmed when the DTD of the browsed file has been declared without reference to a corresponding public identifier. When this situation arises the style sheet selection is resolved by a <XREF RID="TR-SSHS">fallback scheme</XREF>.</P></NOTE> </SUBSECT1> <SUBSECT1><TITLE>Creating a New Style Sheet</TITLE> <P>To create a new style sheet, select the command <MENU>Attach Style Sheet…</MENU> from the menu <MENU>Styles</MENU>. <LIST> <ITEM><P>Enter a new filename for the style sheet in the file selection dialog that appears.</P></ITEM> <ITEM><P>&p; will query you for a symbolic style sheet name. The symbolic name is displayed in the <MENU>Styles</MENU> menu.</P></ITEM> </LIST></P> <P>When you create a new style sheet, the browser window contents will appear without any formatting except for line breaks before and after each element. You can then proceed to edit the style sheet using the built-in, interactive style sheet editor in the PRO version of &p;.</P> <NOTE><P>If you want to have a head start on the style sheet design, you can copy and rename an existing style file before you attach it.</P></NOTE> <P>The style sheet editor can be summoned from pop-up menus in the browser and SGML Tree Window. Because the styles support inheritance, general defaults can be set to the topmost element; only elements for whom special formatting rules need to be applied—such as titles, footnotes, tables, or graphics—remain to specify. With some experience, designing a style sheet for a structure-oriented DTD is done in a matter of minutes.</P> </SUBSECT1> <SUBSECT1><TITLE>Detach Style Sheet</TITLE> <P>This command removes the binding between the current style sheet and the corresponding DTD. The style sheet's symbolic name is removed from the <MENU>Styles</MENU> menu and the <TT>ENTITYRC</TT> catalog is automatically updated. The style sheet file is <EM>not</EM> deleted.</P> </SUBSECT1> ]]> <SUBSECT1><TITLE>Available Style Sheets</TITLE> <P>Style sheets that have been attached to the current DTD are listed at the top of the <MENU>Styles</MENU> menu; the name that appears in the menu is taken from the corresponding entry in the <TT>ENTITYRC</TT> catalog<![ %PRO; [ (and is identical to the symbolic name entered when the style sheet was created)]]>. Selecting one of the listed styles reformats the browser window according to that style sheet.</P> </SUBSECT1> </SECTION> <SECTION ID="NAVMENU"><TITLE>The Navigator Menu</TITLE> <P>Navigators are powerful generalized table of contents: any element can be displayed in a navigator; clicking a navigator entry scrolls the browsed document to the corresponding position. The navigator entries will automatically reflect the hierarchical structure of the elements selected for display in the navigator, such as titles at the levels of chapters, sections, and subsections.</P> <P>The contents of this menu are dimmed when no document is being browsed.</P> <SUBSECT1><TITLE>Available Navigators</TITLE> <P>In the <MENU>Navigator</MENU> menu, available navigators are listed at the top of the menu. The menu item <MENU>None</MENU>, removes the display of the navigator from the document window and expands the document to fill the size of the entire window. Removing the navigator display is also achieved by dragging the vertical divider bar far to the left, until the bar disappears.</P> </SUBSECT1> <SUBSECT1><TITLE>Popup Menu Commands</TITLE> <P>Clicking on the <![ %windows; [right ]]><![ %motif; [right ]]> mouse button within the full-text portion of the browser window displays a popup menu.</P> <SUBSECT2><TITLE>Locate in Navigator</TITLE> <P>&p; continuously updates the navigator to display what part of the document that is displayed, indicating the current location with a bright yellow arrow icon that prefixes the nearest open navigator entry. The navigator window will however not scroll its content should you scroll outside of the range currently being presented in the navigator. Selecting the <MENU>Locate in Navigator</MENU> command scrolls the navigator entry that is closest to the cursor position to the top of the navigator. This command is dimmed when no navigator is displayed.</P> </SUBSECT2> <![ %PRO; [ <SUBSECT2><TITLE>Navigator Entry</TITLE> <P>The <MENU>Navigator Entry</MENU> command launches the Navigator Editor, which is part of the features specific to the PRO version of &p;. This editor allows for the interactive definition of navigator elements. The element to be used for navigation is designated by the cursor position when the command is issued in the full-text browser.</P> </SUBSECT2> ]]> </SUBSECT1> <![ %PRO; [ <SUBSECT1 ID="ATTCHNAV"><TITLE>Attach Navigator</TITLE> <P>The <MENU>Attach Navigator…</MENU> command lets you select a navigator definition file (normally with the suffix <TT>.NAV</TT>) to be associated with the DTD of the current document. Attaching a navigator updates the <TT>ENTITYRC</TT> catalog.</P> </SUBSECT1> <SUBSECT1 ID="CREATNAV"><TITLE>Creating a New Navigator</TITLE> <P>To create a new navigator, select the command <MENU>Attach Navigator…</MENU> from the menu <MENU>Navigator</MENU>. <LIST> <ITEM><P>Enter a new filename for the navigator in the file selection dialog that appears.</P></ITEM> <ITEM><P>&p; will query you for a symbolic navigator name. The symbolic name is displayed in the <MENU>Navigator</MENU> menu.</P></ITEM> </LIST></P> <P>When you create a new navigator, the navigator portion of the application window will initially be empty. As you proceed to interactively define the navigator entries, the navigator fills up with the selected elements. Navigator definition files use the file suffix <TT>.NAV</TT> by default. This command updates the <TT>ENTITYRC</TT> catalog.</P> </SUBSECT1> <SUBSECT1><TITLE>Detach Navigator</TITLE> <P>The <MENU>Detach Navigator</MENU> command is used to remove the connection between a DTD and the current navigator definition, so that the navigator no longer appears in the <MENU>Navigator</MENU> menu. The navigator definition file is <EM>not</EM> deleted. This command updates the <TT>ENTITYRC</TT> catalog.</P> </SUBSECT1> <SUBSECT1><TITLE>Edit Navigator</TITLE> <P>The <MENU>Edit Navigator…</MENU> command brings up the Navigator Editor, to review and edit the list of elements that have been selected as navigator entries. See the section <XREF RID="NAVEDIT">Editing Navigators</XREF>.</P> </SUBSECT1> ]]> <SUBSECT1><TITLE>SGML Tree</TITLE> <P>Due to the hierarchical nature of SGML markup, every element is either contained or disjunct with respect to other elements. The corresponding structure can be represented as a tree, the root element being the topmost (doctype) element.</P> <P>The <MENU>SGML Tree</MENU> command brings up a graphical, interactive structure view of the document instance in the navigator portion of the application window. Just like a regular navigator, you can use this window to position the document by clicking on the elements.</P> <SUBSECT2><TITLE>SGML Tree Functionality</TITLE> <P>Besides using the scroll bars of the SGML Tree, you can also click and drag the window contents. When the cursor is over an element: <LIST> <ITEM><P>Clicking the left part of the element box toggles the display of contained subelements.</P></ITEM> <ITEM><P>Clicking anywhere else within the element scrolls the browser to that location, and</P></ITEM> <ITEM><P>Highlights the corresponding element contents.</P></ITEM> </LIST> </P> </SUBSECT2> </SUBSECT1> </SECTION> <SECTION ID="WEBSMENU"><TITLE>The Webs Menu</TITLE> <P><EM>Webs</EM> are &p;'s file containers for user-defined additions: bookmarks, annotations, or links between text or graphics. The web documents are encoded automatically by the application in SGML, and use <BO>HyTime</BO> addressing to hyperlink the web information to the corresponding documents. The webs are only available in the PRO version of &p; and should not be confused with the term <Q>web</Q> as used in e.g. the expression <Q>World Wide Web</Q>.</P> <SUBSECT1><TITLE>Granularity of Web Objects</TITLE> <P>Web objects are always connected to a <EM>contiguous selection</EM>, to which the user-defined information is attached. This allows for a granularity that transcends the markup for the corresponding document, to pinpoint document contents down to the word level or to a rectangular area within a graphic. Such selections are referred to as <BO>anchors.</BO></P> </SUBSECT1> <SUBSECT1><TITLE>Web Persistence</TITLE> <P>Webs permit annotating documents to which you may not have write access, and thanks to the HyTime addressing capabilities, have excellent chances of coping even with documents whose contents have been edited since the user-defined additions were made. This is especially important in a distributed, multi-user environment.</P> <P>Webs are also an excellent means by which to share information on a set of common documents—e.g. as part of a review process.</P> </SUBSECT1> <![ %PRO; [ <SUBSECT1><TITLE>Mounting a Web</TITLE> <P>The <MENU>Mount Web…</MENU> command makes &p; aware of the contents of a web. Once the web has been mounted, the application will read the web data it contains and display it. The reason for separating web data (such as annotations and links) is that you may have many different kinds of webs on the same set of documents, and each web contains information tailored for different recipients. Also, more than one web can be in use simultaneously. Webs are stored and automatically reloaded between &p; sessions. <FOOTNOTE><P>The concept of separate webs stems from the (now sadly defunct) Intermedia hypertext system, developed at Brown University in Providence, RI. The designers behind &p; have improved on this original web notion in several important ways, such as providing HyTime adressing and concurrent web layers.</P></FOOTNOTE></P> <SUBSECT2><TITLE>Editing a Web</TITLE> <P>When a web has been mounted, its name appears in the <MENU>Webs</MENU> menu. Even though its contents are now accessible, it is not editable. To make the web editable, select the web name from the <MENU>Webs</MENU> menu. The status of the web as being editable will be reflected in two ways: the name of the web is echoed in the status bar, and a checkmark prefix appears by the web name in the <MENU>Webs</MENU> menu.</P> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>Deactivating a Web</TITLE> <P>Select <MENU>Web Manager…</MENU> from the <MENU>Webs</MENU> menu to close a web so that its contents are no longer shown, . In the dialog that appears, select the web and press the <BUTTON>Dismount</BUTTON> button. The web file is <EM>not</EM> deleted.</P> </SUBSECT1> <SUBSECT1><TITLE ID="ANNOTDLG">Annotate</TITLE> <P>The <MENU>Annotate…</MENU> command is used to create an annotation or a bookmark. These are the steps that you need to perform to create an annotation:</P> <LIST> <ITEM><P>Make sure that you have an editable web. The web name is displayed with a checkmark prefix in <MENU>Webs</MENU> menu, and its name is displayed in the status bar.</P></ITEM> <ITEM><P>Highlight a portion of text or of a graphic. The <BUTTON>Annotate…</BUTTON>, <BUTTON>Begin Link…</BUTTON>, and <BUTTON>Copy Selection</BUTTON> tool bar buttons and the corresponding menu items will become available.</P></ITEM> <ITEM><P>Click on the annotation icon in the application tool bar or select <MENU>Annotate…</MENU> from the menu <MENU>Webs</MENU>.</P> <P>The dialog below will appear.</P></ITEM> <FIGGRP> <FIG NAME="ANNOTDLG.GIF"> <TITLE>This is the annotation dialog. It is used for displaying and creating annotations, as well as for creating bookmarks.</TITLE> </FIGGRP> <ITEM><P>In the annotation dialog, enter your annotation in the large editable text field below <TT>Note</TT>.</P></ITEM> <ITEM><P>Optionally, assign the annotation a symbolic name. The purpose of this text field is to provide a space in which you can <EM>qualify</EM> your annotation in some manner. By default, the name consists of the first words of the selected text.</P></ITEM> <ITEM><P>Optionally, click in the <TT>Bookmark</TT> check box to register the annotation as a <XREF RID="BOOKMRKS">bookmark</XREF> as well.</P></ITEM> </LIST> <P>The annotation is shown as an icon in the text, and selecting the icon highlights the corresponding selection—so that you can tell precisely what has been annotated. Anchors in graphics are indicated by a subtle border, that flashes when the anchor is selected.</P> </SUBSECT1> <SUBSECT1><TITLE>Begin Link…</TITLE> <P>&p; links can go between any two addressable SGML/HyTime documents. Below are the steps you need to perform to create user-defined hyperlinks.</P> <SUBSECT2><TITLE>Creating a link from text</TITLE> <P>To create a link that whose endpoint is text, you must: <LIST> <ITEM><P>Select a portion of text as a starting or <EM>source</EM> anchor.</P></ITEM> <ITEM><P>Click on the &beglink.gif; icon in the application tool bar or select <MENU>Begin Link…</MENU> from the menu <MENU>Webs</MENU>.</P></ITEM> <ITEM><P>Highlight the text you want to link to—the target of your link.</P></ITEM> <ITEM><P>Select the menu item <MENU>Connect Link…</MENU> or press the equivalent tool bar button &conlink.gif;.</P></ITEM> <ITEM><P>A dialog will now be displayed, prompting you to optionally name the source and target anchors. By default, the anchor names are the initial portion of the selected text of each anchor.</P> <P>Named anchors can be used e.g. to explain the reason behind the link connection.</P> </ITEM> </LIST></P> <P>Even though the link creation dialog uses the terms <Q>source</Q> and <Q>target</Q>, links are bi-directional: they are displayed with in-line icons at both endpoints.</P> <P>As HyTime is an application of SGML, you may want to view the web document in &p;; web documents normally use the file suffix <TT>.WEB</TT>. You will note that the HyTime used for addressing into documents will make the web contents hyperlinked to the corresponding document anchors.</P> </SUBSECT2> <SUBSECT2><TITLE ID="HOTSPOT">Creating a link from graphics</TITLE> <P>To create a link that whose endpoint is a graphic hot spot, you select a source anchor and a target anchor.</P> <P> <LIST> <ITEM><P>Select a portion of a graphic (or text) as a source anchor.</P></ITEM> <ITEM><P>Click on the &beglink.gif; icon in the application tool bar or select the <MENU>Begin Link…</MENU> from the menu <MENU>Webs</MENU>.</P> <P>When the graphic is displayed in a separate window the command <MENU>Begin Link…</MENU> is available from the <MENU>Anchor</MENU> menu in the window caption.</P> </ITEM> <ITEM><P>Select the target of the link.</P></ITEM> <ITEM><P>Select the menu item <MENU>Connect Link…</MENU></P></ITEM> <ITEM><P>A dialog will now be displayed, prompting you to optionally name the source and target anchors. By default, the anchor names are called <TT>HOT SPOT</TT>.</P> <P>In addition, you may specify an optional zoom factor of <TT>Inherit</TT>, <TT>100</TT>, <TT>200</TT>, <TT>400</TT>, or <TT>800</TT> percent. When the zoom factor is set to inherit, the graphics will be kept at its current setting. Any other zoom factor will make &p; display the graphics in a separate window when the hot spot is accessed, and zoom the graphics according to the chosen zoom factor.</P> </ITEM> </LIST> Links in graphics are shown with a subtle border that flashes when the hot spot is selected. Links are by default bi-directional.</P> <FIGGRP> <FIG NAME="ANCHNAME.GIF"> <TITLE>The <TT>Anchor Names</TT> dialog is displayed when you specify the endpoint of links. The zooming factor is only available for hot spots.</TITLE> </FIGGRP> </SUBSECT2> </SUBSECT1> </SECTION> <SECTION ID="BOOKMRKS"><TITLE>The Bookmarks Menu</TITLE> <P>Bookmarks are markers that you can leave in documents, for instant return to the selected spot. The bookmarks are stored in webs and become available from the <MENU>Bookmarks</MENU> menu as soon as the corresponding web is mounted. The menu does not appear when there are no bookmarks.</P> <SUBSECT1><TITLE>Creating bookmarks</TITLE> <P>Bookmarks are created from the dialog used for annotations. As bookmarks are stored in webs, there must be an editable web in which to store the bookmark. These are the steps you need to perform to create a bookmark:</P> <LIST> <ITEM><P>Check that you have an open web—you can just glance at the right part of the status bar (at the bottom of the window), as it displays the currently editable web.</P> <P>Alternatively, select the menu <MENU>Webs</MENU> to see what web is checkmarked. Selecting a web toggles its status of being checkmarked and editable vs. being available as a read-only object.</P> <P>If there are no webs currently available, see the section <XREF RID="WEBOPEN">Opening and Creating Webs</XREF>.</P> </ITEM> <ITEM><P>Make a selection by clicking and dragging a contiguous area in either text (or a graphic, if you want a hot spot).</P></ITEM> <ITEM><P>From the <MENU>Webs</MENU> menu, select <MENU>Annotate…</MENU> , or just click the corresponding tool bar button: &annotbut.gif;.</P></ITEM> <ITEM><P>In the annotation dialog, click on the check box marked <TT>Bookmark</TT>.</P></ITEM> <ITEM><P>Optionally, name the bookmark by editing the <TT>Name:</TT> text field above the check box. By default, the bookmark is named by the first portion of the selection (or <TT>HOT SPOT</TT>, in the case of hot spots). Naming a bookmark may be useful when you later access it from the <MENU>Webs</MENU> menu.</P></ITEM> </LIST> </SUBSECT1> ]]> </SECTION> </CHAPTER> <CHAPTER ID="SSHEDIT"><TITLE>Editing Style Sheets</TITLE> <P>&sp; PRO includes a style sheet editor that lets you interactively edit style sheets by positioning the cursor over the element whose formatting is to be edited. You can launch the editor either from the formatted browser window or from the SGML Tree navigator; all changes can be previewed before the changes are made permanent.</P> <![ %PRO; [ <SECTION ID="SS-EDIT"><TITLE>The Style Sheet Editor</TITLE> <FIGGRP> <FIG NAME="INHRCONT.GIF"> <TITLE>The style sheet editor displays the current element (possibly qualified by a tag context) in the <TT>Element</TT> pull-down list at the very top of the window. The upper right hand corner button (denoted with a <TT>P</TT> for Parent) is used for rapid traversal of ancestor elements. The <BUTTON>Preview</BUTTON> button is used to redisplay the browser contents according to current settings. Pressing <BUTTON>OK</BUTTON> commits the editing changes, while pressing <BUTTON>Cancel</BUTTON> restores the style sheet to the state it was prior to the editing session.</TITLE> </FIGGRP> <P>The style sheet editor is used to edit the style of any element. <LIST> <ITEM><P>In the SGML Tree, position the cursor over an element and select <MENU>Edit Style</MENU> from the <![ %windows; [right mouse button]]><![ %mac; [Alt-click]]> popup menu. </P></ITEM> <ITEM><P>In the the document browser window, position the cursor over the text whose appearance you want to change and select <MENU>Edit Style</MENU> from the <![ %windows; [right mouse button]]><![ %mac; [Alt-click]]> popup menu.</P></ITEM> </LIST></P> <P>The pull-down list <TT>Property</TT> selects one of the five categories (<TT>Content</TT>, <TT>Paragraph</TT>, <TT>Before</TT>,<TT>After</TT> or <TT>Misc</TT>). Current formatting properties are displayed in the main list.</P> <P>Select a setting in order to edit it. &p; displays a popup menu with possible values to choose from, or an editing field to enter strings or a numeric argument as needed.</P> <P>The <TT>Occurrence</TT> pull-down menu is used to specify formatting that is to take effect only on certain occurrences of an element, such as the first, last, or the complement of these possibilities.</P> <NOTE><P>Modifying the formatting settings does not have any effect until either the <BUTTON>Preview</BUTTON> or <BUTTON>OK</BUTTON> button is pressed. The former will re-format the browser window contents, while the latter will re-format the browser window contents <EM>and commit the editing changes to the style sheet</EM>. Pressing <BUTTON>Cancel</BUTTON> restores the original settings and ends the editing session, while pressing <BUTTON>Clear</BUTTON> resets the settings without exiting the editor.</P></NOTE> <SUBSECT1><TITLE>Style Sheet Editing</TITLE> <FIGGRP> <FIG NAME="CONTENT.GIF"> <TITLE>The <TT>Property</TT> pull-down menu is used to address various formatting aspects: how to display element contents, what should happen when opening or closing an element, how space should be created around it, etc.</TITLE> </FIGGRP> <P>In the style sheet editor, there are five categories of formatting properties that can be set:</P> <P><LIST> <ITEM><P><EM>Content:</EM> mainly text properties (such as font family, font size, font slant, etc).</P></ITEM> <ITEM><P><EM>Paragraph:</EM> spacing around the element (such as line breaking and margins).</P></ITEM> <ITEM><P><EM>Before:</EM> actions to do, or text to add, when <EM>opening</EM> the element.</P></ITEM> <ITEM><P><EM>After:</EM> action to do, or text to add, when <EM>closing</EM> the element.</P></ITEM> <ITEM><P><EM>Miscellaneous:</EM> Esoteric formatting properties, such as table handling, math, iconizing elements, and auto numbering.</P></ITEM> </LIST> </P> <SUBSECT2><TITLE>Inheritance and containment</TITLE> <P>Generally speaking, most formatting aspects can be <EM>inherited</EM> from parent elements: Selecting a suitable general style for the topmost (root) element and fine-tuning the style sheet for headings, footnotes, and similar elements is the recommended approach. Inheritance reduces the effort of creating a new style sheet to a minimum as the inheritance chain goes all the way up to the top element.</P> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>Content</TITLE> <P>In the content dialog, one defines formatting for the display of the <BO>element contents</BO>. Normally, suitable defaults are set for the top element, with adjustements for the presentation of elements such as footnotes, headings, tables, and the like. <DEFLIST> <TERM> <TT>Font Family</TT> </TERM> <DD> <P>Clicking this property displays a list of all available fonts on the system.</P></DD> <TERM> <TT>Font Size</TT> </TERM> <DD> <P>Sets the font size in pixels.</P></DD> <TERM> <TT>Font Slant</TT> </TERM> <DD> <P>The slant can be set to <TT>roman</TT>, <TT>italic</TT>, or <TT>emphasis</TT>. Emphasized text will toggle the current setting: if the text is displayed in roman style, it is italicized, and vice-versa. This last setting is handy when you have embedded elements that inherit the slant setting.</P></DD> <TERM> <TT>Font Weight</TT> </TERM> <DD> <P>The weight can be <TT>Medium</TT> or <TT>Bold</TT>.</P></DD> <TERM> <TT>Font Color</TT> </TERM> <DD> <P>This sets the foreground text color. The color can be specified as an RGB value in hexadecimal notation up to 24 bits wide (<TT>#FFFFFF</TT>). In addition, the predefined &platform; colors are:</P> <![ %windows; [ <P> <LIST> <ITEM><P>aqua</P></ITEM> <ITEM><P>black</P></ITEM> <ITEM><P>blue</P></ITEM> <ITEM><P>fuschia</P></ITEM> <ITEM><P>gray</P></ITEM> <ITEM><P>green</P></ITEM> <ITEM><P>lime</P></ITEM> <ITEM><P>maroon</P></ITEM> <ITEM><P>navy</P></ITEM> <ITEM><P>olive</P></ITEM> <ITEM><P>purple</P></ITEM> <ITEM><P>red</P></ITEM> <ITEM><P>silver</P></ITEM> <ITEM><P>teal</P></ITEM> <ITEM><P>white</P></ITEM> <ITEM><P>yellow</P></ITEM> </LIST> </P> </DD> ]]> <![ %mac; [ <P> <LIT> ************************************ * COPY NEEDS TO BE ADDED FOR MAC * ************************************ </LIT> </P> </DD>]]> <![ %motif; [ <P> <LIT> ************************************** * COPY NEEDS TO BE ADDED FOR MOTIF * ************************************** </LIT> </P> </DD>]]> <TERM> <TT>Font Scale</TT> </TERM> <DD> <P>The scale of the font is entered as a percentage; a figure greater than 100 produces a magnification, less than 100 shrinks the scale. This setting is useful for uniform size transformation, say for a demo, or to create a style sheet specifically for certain printing requirements. Note that the setting will affect elements whose font sizes are expressed absolutely (in pixels) as well as elements whose size is expressed relative the current setting using <TT>Font Scale</TT>.</P></DD> <TERM><TT>Position</TT> </TERM> <DD><P>The contents of the element are normally displayed on the current baseline. If needed, they can be offset +/-70% (expressed in the current font) from the baseline. The offset is set in increments of 10% as picked from the pop-up list.</P></DD> <TERM><TT>Visibility</TT> </TERM> <DD><P>You can either <EM>hide</EM> or <EM>show</EM> the element and its subelements. The usefulness of this setting is somewhat dependent on the DTD being used. Some document types contain a lot of information of an administrative nature not meant to be read by an end-user.</P></DD> </DEFLIST> </P> </SUBSECT1> <SUBSECT1> <TITLE>Paragraph</TITLE> <FIGGRP> <FIG NAME="PARAPROP.GIF"> <TITLE>The <TT>Paragraph</TT> setting affects mainly spacing and justification of the element.</TITLE> </FIGGRP> <P>The paragraph properties affect primarily spacing and justification.</P> <P> <DEFLIST> <TERM> <TT>Justify</TT> </TERM> <DD> <P>The justification of the element contents can be set to <TT>left</TT>, <TT>center</TT> , and <TT>right</TT>.</P></DD> <TERM><TT>Leading</TT> </TERM> <DD> <P>&p; handles the baseline spacing automatically. The leading is expressed as the number of pixels to add to the baseline offset, in addition to whatever is currently required with current font size settings.</P></DD> <TERM> <TT>Break</TT> </TERM> <DD> <P>This property specifies whether the element should cause a line break before and/or after the display of its contents. It has four settings: <DEFLIST> <TERM> <TT>Block</TT> </TERM> <DD> <P>Creates a line break before and after the element.</P></DD> <TERM> <TT>Before</TT> </TERM> <DD> <P>Creates a line break before the element.</P></DD> <TERM> <TT>After</TT> </TERM> <DD> <P>Creates a line break after the element.</P></DD> <TERM> <TT>Inline</TT> </TERM> <DD> <P>No line breaks, thus the element is displayed in the normal flow of text.</P></DD></DEFLIST></P></DD> <TERM> <TT>Space Above</TT> </TERM> <DD> <P>Additional spacing above the element, e.g. to create space between headings or paragraphs.</P></DD> <TERM> <TT>Space Left</TT> </TERM> <DD> <P>Space to the left margin. The value can be absolute (from the margin) or relative the parent element; the latter is useful when creating indented lists within lists.</P></DD> <TERM> <TT>Space Indent</TT> </TERM> <DD> <P>This setting handles the indentation of the first line of the element.</P></DD> <TERM> <TT>Space Below</TT> </TERM> <DD> <P>Additional spacing below the element, e.g. to create space between headings or paragraphs.</P></DD> </DEFLIST> </P> <NOTE><P>A hint: Setting spacing on all sides of the topmost element will create nice margins in the browser window.</P></NOTE> </SUBSECT1> <SUBSECT1><TITLE>Text Before/After property functions</TITLE> <P>&p; has the following sets of property functions to insert text in the style sheet property <TT>Text Before</TT> and <TT>Text After</TT>.<FOOTNOTE><P>The SGML application SoftQuad Explorer (also developed by Synex Information AB) currently has a somewhat different notation—both formats will be supported in both applications.</P></FOOTNOTE></P> <SUBSECT2><TITLE>Generated text</TITLE> <P>Many DTDs use attributes in which to store document information. &p; lets you extract the contents of attributes and environment variables, combining the ultimate presentation with contextual requirements. In addition to accessing these values and inserting them before or after elements, you can insert text strings, tab characters, and line breaks.</P> </SUBSECT2> <SUBSECT2><TITLE>Before and After</TITLE> <P>The <TT>Before</TT> and <TT>After</TT> settings affect formatting that is to take place when opening and closing elements, respectively. Everything that can be inserted <EM>before</EM> can be inserted <EM>after</EM> an element as well, so the description below applies to both of these settings.</P> <P> <DEFLIST> <TERM> <EMPH TYPE="5">Text</EMPH> </TERM> <DD><P>A string of text to insert before/after the content of the element, as a prefix/suffix, respectively.</P> <P>More advanced text insertion can also be done by extracting attribute values and environment variables by specifying a string with a special syntax, described in the table below. <DEFLIST REND="TABLE"> <TERM><TT>\n</TT></TERM> <DD><P>the line break character</P></DD> <TERM><TT>\tab</TT></TERM> <DD><P>the tab character</P></DD> <TERM><TT>\[0-9]+</TT></TERM> <DD><P>the character with the corresponding ordinal value</P></DD> <TERM><TT>\att(attribute)</TT></TERM> <DD><P>the textual value of the attribute</P></DD> <TERM><TT>\env(envvar)</TT></TERM> <DD><P>the textual value of the environment variable <TT>envvar</TT></P></DD> </DEFLIST> The variables <TT>\n</TT> or <TT>\tab</TT> should be separated from the text that follows by <EM>any other character</EM> than a lower-case letter of the english alphabet, such as a blank. In the rare case that this would be a problem, you can insert a semi-colon after the variable. The semi-colon will be suppressed in the output. <LIST> <ITEM><P><TT>first line\n;and the second line follows</TT></P></ITEM> <ITEM><P><TT>\tab;</TT></P></ITEM> </LIST></P> <P>The inserted text can also be subject to conditional processing through the following functions: <SQTABLE> <SQROW><!-- Row 1 --> <SQCELL colstart=1 colspan=1 rowstart=1 rowspan=1><TT>\ifatt(attribute)</TT></SQCELL> <SQCELL colstart=2 colspan=1 rowstart=1 rowspan=1><P>Check if attribute is assigned a value.</P></SQCELL> </SQROW> <SQROW><!-- Row 2 --> <SQCELL colstart=1 colspan=1 rowstart=2 rowspan=1><TT>\ifatt(attribute=val)</TT></SQCELL> <SQCELL colstart=2 colspan=1 rowstart=2 rowspan=1><P>Check if attribute is equal the value <TT>val</TT>.</P></SQCELL> </SQROW> <SQROW><!-- Row 3 --> <SQCELL colstart=1 colspan=1 rowstart=3 rowspan=1><TT>\ifenv(envar)</TT></SQCELL> <SQCELL colstart=2 colspan=1 rowstart=3 rowspan=1><P>Check if the environment variable <TT>envar</TT> is set.</P></SQCELL> </SQROW> <SQROW><!-- Row 4 --> <SQCELL colstart=1 colspan=1 rowstart=4 rowspan=1><TT>\ifenv(envar=val)</TT></SQCELL> <SQCELL colstart=2 colspan=1 rowstart=4 rowspan=1><P>Check if the environment variable <TT>val</TT> equals the value <TT>val</TT>.</P></SQCELL> </SQROW> <SQROW><!-- Row 5 --> <SQCELL colstart=1 colspan=1 rowstart=5 rowspan=1><TT>\else</TT></SQCELL> <SQCELL colstart=2 colspan=1 rowstart=5 rowspan=1><P>The else branch in a conditional processing statement.</P> </SQCELL> </SQROW> <SQROW><!-- Row 6 --> <SQCELL colstart=1 colspan=1 rowstart=6 rowspan=1><TT>\endif</TT></SQCELL> <SQCELL colstart=2 colspan=1 rowstart=6 rowspan=1><P>Closes a conditional processing statement</P></SQCELL> </SQROW> </SQTABLE> </P> <P>A few examples of the kinds of possible statements are: <LIT> \ifatt(label)\att(label)\endif \ifatt(label)\att(label)\else Figure\endif \ifatt(sec=ts)TOP SECRET\else ifatt(sec=s) SECRET\else Open\endif\endif </LIT> </P> <NOTE><P>The style sheet editor will dim the <MENU>Edit Style</MENU> entry when the cursor is positioned over text that has been inserted before or after an element.</P></NOTE> <DEFLIST> <TERM> <EMPH TYPE="5">Font Family</EMPH> </TERM> <DD> <P>The name of the font in which the inserted text is to be shown.</P></DD> <TERM> <EMPH TYPE="5">Font Size</EMPH> </TERM> <DD> <P>Size of the inserted text, in pixels.</P></DD> <TERM> <EMPH TYPE="5">Font Slant</EMPH> </TERM> <DD> <P>The slant of the inserted text can be set to <TT>roman</TT>, <TT>italic</TT>, or <TT>emphasis</TT>.</P></DD> <TERM> <TT>Font Weight</TT> </TERM> <DD> <P>The weight of the inserted text can be <TT>Medium</TT> or <TT>Bold</TT>.</P></DD> <TERM> <TT>Font Color</TT> </TERM> <DD> <P>This sets the foreground color of the inserted text. The color can be specified as an RGB value in hexadecimal notation up to 24 bits wide (<TT>#FFFFFF</TT>). In addition, the predefined &platform; colors are:</P> <![ %windows; [ <P> <LIST> <ITEM><P>aqua</P></ITEM> <ITEM><P>black</P></ITEM> <ITEM><P>blue</P></ITEM> <ITEM><P>fuschia</P></ITEM> <ITEM><P>gray</P></ITEM> <ITEM><P>green</P></ITEM> <ITEM><P>lime</P></ITEM> <ITEM><P>maroon</P></ITEM> <ITEM><P>navy</P></ITEM> <ITEM><P>olive</P></ITEM> <ITEM><P>purple</P></ITEM> <ITEM><P>red</P></ITEM> <ITEM><P>silver</P></ITEM> <ITEM><P>teal</P></ITEM> <ITEM><P>white</P></ITEM> <ITEM><P>yellow</P></ITEM> </LIST> </P> </DD>]]> <![ %mac; [ <P> <LIT> ************************************ * COPY NEEDS TO BE ADDED FOR MAC * ************************************ </LIT> </P> </DD>]]> <![ %motif; [ <P> <LIT> ************************************** * COPY NEEDS TO BE ADDED FOR MOTIF * ************************************** </LIT> </P> </DD>]]> <TERM> <TT>Position</TT> </TERM> <DD> <P>The inserted string is normally displayed on the current baseline. If needed, it can be offset +/-70% (expressed in the current font) from the baseline. The offset is set in increments of 10%.</P></DD> <TERM><TT>Rule</TT></TERM> <DD> <P>This setting is used to create a horizontal rule at the location offset specified by applying the values of <TT>Space Above</TT> and <TT>Space Below</TT> (respectively). The number specified in the rule setting is additional spacing from the rule, expressed in pixels. The position of the rule is thus padded by settings from each sides.</P></DD></DEFLIST> </DD> </DEFLIST> </P> </SUBSECT2> </SUBSECT1> <SUBSECT1 ID="MISCSSH"><TITLE>Miscellaneous</TITLE> <P>The <TT>Misc</TT> setting is used for formatting that does not fit in any of the categories above.</P> <P> <DEFLIST> <TERM ID="ICON"><TT>Icon</TT> </TERM> <DD><P>Selecting an icon will display the element with an inline icon. Clicking the icon displays the element contents in a separate window. (See also the <XREF RID="BKGDCOLR"><TT>Background Color</TT></XREF> setting below).</P> <P>This revelatory style sheet behavior is suitable for elements such as footnotes, tables, or similar elements.</P> </DD> <TERM ID="AUTONUMB"><TT>Autonumber</TT> </TERM><DD><P>This property specifies whether the element should be numbered automatically, and in what style. It has four settings:</P> <P> <DEFLIST> <TERM> <TT>Linear</TT> </TERM> <DD> <P>Numbers the element in order (linearly) throughout the document.</P></DD> <TERM> <TT>Hierarchical Begin</TT> </TERM> <DD> <P>Resets the counter of this element when the element is opened.</P></DD> <TERM> <TT>Hierarchical Block</TT> </TERM> <DD> <P>Assigns a counter at this hierarchical level.</P></DD> <TERM> <TT>Hierarchical Item</TT> </TERM> <DD> <P>Numbers the element within a block.</P> <P>Hierarchical items are thus enclosed by elements that are assigned a style sheet setting of <EM>hierarchical blocks</EM>.</P></DD> </DEFLIST> </P> <P>A hint: To better understand how autonumbering is accomplished in e.g. this manual, do as follows: <LIST> <ITEM><P>Place the cursor over an autonumbered heading nested deep in the document, to have several layers.</P></ITEM> <ITEM><P>Select <TT>Locate in SGML Tree</TT> from the <![ %windows; [right mouse button]]><![ %mac; [Alt-click]]> popup menu.</P></ITEM> <ITEM><P>From the same menu, select <TT>Edit Style</TT> when the cursor is over an autonumbered heading</P></ITEM> <ITEM><P>In the style sheet editor, pick the <TT>Misc</TT> property and look at the <TT>Autonumber</TT> setting.</P></ITEM> <ITEM><P>Press the parent button (<BUTTON>P</BUTTON>) to visit parent elements in turn, and note how the style sheet setting toggles between <TT>Hierarchical Item</TT> and <TT>Hierarchical Block</TT> as you traverse the SGML Tree.</P></ITEM> </LIST> </P> </DD> <TERM> <TT>Number Type</TT> </TERM> <DD> <P>This setting specifies the style of autonumbering: arabic, roman, or alphabetic, where the two last options can be in upper or lower case.</P> <NOTE><P>This setting has no effect unless <TT>Autonumber</TT> has one of the values <TT>Linear</TT>, <TT>Hierarchical Begin</TT>, or <TT>Hierarchical Block</TT>. </P></NOTE></DD> <TERM ID="BKGDCOLR"> <TT>Background Color</TT> </TERM> <DD><P>This setting affects the background color for elements displayed in a window of their own, i.e. elements whose contents has been hidden behind an <XREF RID="ICON">icon</XREF>. Other elements will inherit the value of the background color, regardless of their background color setting.</P> <P>The predefined &platform; colors are:</P> <![ %windows; [ <P> <LIST> <ITEM><P>aqua</P></ITEM> <ITEM><P>black</P></ITEM> <ITEM><P>blue</P></ITEM> <ITEM><P>fuschia</P></ITEM> <ITEM><P>gray</P></ITEM> <ITEM><P>green</P></ITEM> <ITEM><P>lime</P></ITEM> <ITEM><P>maroon</P></ITEM> <ITEM><P>navy</P></ITEM> <ITEM><P>olive</P></ITEM> <ITEM><P>purple</P></ITEM> <ITEM><P>red</P></ITEM> <ITEM><P>silver</P></ITEM> <ITEM><P>teal</P></ITEM> <ITEM><P>white</P></ITEM> <ITEM><P>yellow</P></ITEM> </LIST> The color can be specified as an RGB value in hexadecimal notation up to 24 bits wide (<TT>#FFFFFF</TT>). </P> </DD>]]> <![ %mac; [ <P> <LIT> ************************************ * COPY NEEDS TO BE ADDED FOR MAC * ************************************ </LIT> </P> </DD>]]> <![ %motif; [ <P> <LIT> ************************************** * COPY NEEDS TO BE ADDED FOR MOTIF * ************************************** </LIT> </P> </DD>]]> <TERM><TT>Table Item</TT></TERM> <DD><P>&p; has a canonical formatting interface for handling row-oriented tables and tables whose cells follow SoftQuad's table model. Row-oriented tables are formatted by combining twelve settings:</P></DD> <TERM> <TT>Table</TT> </TERM> <DD> <P>The element represents a table, and the cell are to be separated by a grid.</P></DD> <TERM> <TT>Table (No Grid)</TT></TERM> <DD> <P>The element represents a table, but no grid is drawn. This formatting feature is useful for creating a tabular display that may not be marked up as a table.</P></DD> <TERM> <TT>Row</TT> </TERM> <DD> <P>The element starts a row in the table.</P></DD> <TERM> <TT>Cell(*)</TT> </TERM> <DD> <P>The element is a cell that can span several columns.</P></DD> <TERM> <TT>Cell(1)-Cell(7)</TT> </TERM> <DD> <P>The element is a cell that spans from 1 to 7 columns, depending on the value within parenthesis.</P> </DD> <TERM> <TT>SQ-Cell</TT> </TERM> <DD> <P>As an alternative to the row-oriented approach, you may use <EM>attributes</EM> that define the cell placement. An SQ-Cell has four attributes (<TT>COLSTART</TT>, <TT>COLSPAN</TT>, <TT>ROWSTART</TT> and <TT>ROWSPAN</TT>) that declare the starting column, the number of spanned columns, the starting row, and the number of spanned rows (respectively).</P></DD> <TERM> <TT>Math Item</TT></TERM> <DD><P>A canonical formatting interface for mathematics. Formulae can be formatted by combining these settings: <LIST> <ITEM><P>Fraction</P></ITEM> <ITEM><P>Radical</P></ITEM> <ITEM><P>Radix</P></ITEM> <ITEM><P>Superior</P></ITEM> <ITEM><P>Inferior</P></ITEM> <ITEM><P>Above</P></ITEM> <ITEM><P>Below</P></ITEM> </LIST> </P></DD> <TERM><TT>Link Source</TT></TERM> <DD><P>By default, &p; will automatically generate a hyperlink for markup-based cross-references. If you do not want the link source to be displayed as a link (as underlined text), set this setting to <TT>Hide</TT>.</P></DD> <TERM><TT>Link Destination</TT></TERM> <DD><P>By default, &p; will automatically generate a hyperlink for markup-based cross-references. If you do not want the link target to be displayed as a link (as underlined text), set this setting to <TT>Suppress</TT>.</P></DD> <TERM><TT>Line</TT></TERM> <DD><P>This setting has three possible values: <TT>Below</TT>, <TT>Over</TT>, and <TT>Trough</TT>. The effect of these settings is <UL>underlined text</UL>, <OL>overlined text</OL> (useful if you are writing logic expressions or are working in the semi-conductor industry), and striked-through text, e.g. to show that text that has been <SO>deleted</SO> in a revision. Underlined text should be used very restrictively—if at all—as it has become somewhat of a convention to denote hyperlinks in many applications, including &p;.</P></DD> <FIGGRP> <FIG NAME="LINE.GIF"> <TITLE>Examples of setting the <TT>Line</TT> property to <TT>Below</TT>, <TT>Over</TT>, and <TT>Through</TT>.</TITLE> </FIGGRP> <TERM><TT>Change Bar</TT></TERM> <DD><P>If this setting is set to <TT>Yes</TT>, the left margin will have a vertical rule as a revision marker for the extent of the element contents.</P></DD> <TERM><TT>Printer Page Feed</TT></TERM> <DD><P>If this setting is set to <TT>Yes</TT>, a new page is generated before printing the contents of the element. This setting can be used beneficially for major divisions of a document, such as chapter elements.</P></DD> <TERM><TT>Printer Headers</TT></TERM> <DD><P>This setting is used to create running headers or footers, where the contents are taken from the most recent occurrence of the element. The contents can be placed flush left, flush right, or centered. A common use of this feature would be to place e.g. chapter titles as running heads.</P></DD> </DEFLIST></P> </SUBSECT1> <SUBSECT1 ID="VERBATIM"><TITLE>Verbatim formatting</TITLE> <P>Some elements need to be formatted the same way as they appear in the SGML source file (verbatim), including so-called white space such as tabs and line breaks. This is however not a style sheet option because the decision to keep white space must be made prior to the parsing of the document contents: an on-line viewer such as &p; (which formats the contents to fit the window size) has no concept of a page! There are two ways of specifying verbatim processing. You can specify: <LIT> VERBATIM "gi1 gi2 gi3..." </LIT> in the <TT>ENTITYRC</TT> file at the corresponding DTD entry, where the <TT>gi</TT> is the identifier for the element whose contents are to displayed verbatim. Alternatively, you can specify a processing instruction of the form: <LIT> <?VERBATIM "gi1 gi2 gi3..."> </LIT> <EM>prior</EM> to the document instance.</P> </SUBSECT1> <SUBSECT1> <TITLE>Qualifying Elements</TITLE> <P>Qualifying an element allows &p; to treat the same element differently depending on its</P> <P> <LIST TYPE="4"> <ITEM> <P>SGML ancestry (such as ancestor or sibling elements)</P></ITEM> <ITEM> <P>Relative position (such as first or last)</P></ITEM> <ITEM> <P>SGML attributes</P></ITEM></LIST></P> <P>The changes in style will only apply to the elements matching the specified conditions.</P> <SUBSECT2> <TITLE>Qualified Formatting</TITLE> <P>In &p;, you can specify contextual formatting qualified on ancestor (parent, grandparent, etc.) and sibling elements. Contextual conditions can be specified for element names (GIs), attributes, and environment variables. There is a small qualifier language for this task.</P> <P>The qualifier language has the following primitives: <TT>and</TT>, <TT>or</TT>, <TT>not</TT>, <TT>par</TT>, <TT>prev</TT>, <TT>next</TT> and <TT>child</TT>. A qualifier can contain subqualifiers (connected by <TT>and</TT> or <TT>or</TT>), grouped by parentheses. Attribute values are retrieved by surrounding the attribute name with square brackets (<TT>[]</TT>). It is possible to quote strings with either double or single quote pairs. The token for comparing primitives is the equal sign.</P> <P>The qualifying language operates on strings, i.e. everything is computed into strings:</P> <DEFLIST> <TERM> <TT>"par"</TT> </TERM> <DD> <P>returns the GI of the current element's parent.</P></DD> <TERM> <TT>"prev"</TT> </TERM> <DD> <P>returns the GI of the current element's previous sibling.</P></DD> <TERM> <TT>"next" </TT> </TERM> <DD> <P>returns the GI of the current element's next sibling.</P></DD> <TERM> <TT>"child"</TT> </TERM> <DD> <P>returns the GI of the current element's first child.</P></DD> <TERM> <TT>"[att]"</TT> </TERM> <DD> <P>returns the value of the attribute "att".</P></DD> </DEFLIST> <P>These operators can be combined by a forward slash, e.g.: <DEFLIST> <TERM> <TT>"par/next"</TT> </TERM> <DD> <P>returns the GI of the next sibling of the parent.</P></DD> <TERM> <TT>"par[att]"</TT> </TERM> <DD> <P>returns the value of the attribute "att" of the parent.</P></DD> </DEFLIST></P> <P><TT>FALSE</TT> is returned if an expression cannot be computed (say, if the current element doesn't have a parent and the context is specified using <TT>par</TT>).</P> <P>Strings are compared using the equality operator (<TT>=</TT>), and the resulting boolean values are combined using the operators <TT>and</TT>, <TT>or</TT> or <TT>not</TT>. A string comparison is a boolean expression. In addition, a string expression evaluates to <TT>TRUE</TT> if it is specified, and to <TT>FALSE</TT> otherwise.</P> <SUBSECT3><TITLE>Some Examples</TITLE> <TABLE> <TBODY> <ROW> <CELL><P><TT>[type] = "ordered"</TT></P></CELL> <CELL><P>This expression is <TT>TRUE</TT> if the current element has an attribute <Q>type</Q> with the value <Q>ordered</Q>.</P></CELL> </ROW> <ROW> <CELL><P><TT>par = "CHP"</TT></P></CELL> <CELL><P>This expression is <TT>TRUE</TT> if the current element has a parent named <Q>CHP</Q>.</P> <FOOTNOTE><P>(If the current element were <Q>CT</Q>, this expression would essentially be equal to qualifying the style for <TT>CT</TT> as <TT>CHP,CT</TT>.</P></FOOTNOTE></CELL> </ROW> <ROW> <CELL><P><TT>not (par = "CHP")</TT></P></CELL> <CELL><P>This expression is <TT>TRUE</TT> when the parent is not a <Q>CHP</Q> element or when the current element is the topmost element (as the topmost element has no parent). </P></CELL> </ROW> <ROW> <CELL><P><TT>next = "P" and prev = "Q"</TT></P></CELL> <CELL><P>This expression is <TT>TRUE</TT> if the current element's previous sibling is a <TT>P</TT> element and the next sibling is a <TT>Q</TT> element. </P></CELL> </ROW> <ROW> <CELL><P><TT>par = child</TT></P></CELL> <CELL><P>This expression tests whether the parent and the first child has the same GI. It would also yield <TT>TRUE</TT> in the unusual case of a document consisting of a single element: if there is no parent and there is no child, the expression is evaluated as the comparison <TT>FALSE = FALSE</TT>, which is <TT>TRUE</TT>. </P></CELL> </ROW> <ROW> <CELL><P><TT>par[tag] = prev</TT> </P></CELL> <CELL><P>This expression evaluates to <TT>TRUE</TT> when the value of the attribute <Q>tag</Q> of the parent is equal to the GI of the previous sibling. There are in addition some unusual conditions where this expression yields <TT>TRUE</TT>, such as <LIST> <ITEM><P>there is no parent, or</P></ITEM> <ITEM><P>the parent doesn't have an attribute named <Q>tag</Q>, or</P></ITEM> <ITEM><P>the attribute <TT>tag</TT> is unspecified</P></ITEM> </LIST> <BO>and</BO> there is no previous sibling.</P> </CELL> </ROW> <ROW> <CELL><P><TT>child</TT></P></CELL> <CELL><P> This expression is <TT>TRUE</TT> if the current element has (at least) one child element. </P></CELL> </ROW> </TBODY> </TABLE> </SUBSECT3> <SUBSECT3><TITLE>Correspondence between &p; and Explorer formatting</TITLE> <P>&p; reads the SoftQuad Explorer (also developed and maintained by Synex Information AB) attribute qualifications and transforms them into &p; qualifications on-the-fly. For your information, here's how Explorer attribute qualifing styles are translated: <LIST> <ITEM><P><TT>"att=Implied"</TT> is translated as <TT>"not [att]"</TT></P></ITEM> <ITEM><P><TT>"att=Not Implied"</TT> is translated as <TT>"[att]"</TT></P></ITEM> <ITEM><P><TT>"att=val"</TT> is translated as <TT>"[att]=val"</TT></P></ITEM> </LIST></P> </SUBSECT3> </SUBSECT2> <SUBSECT2><TITLE>Copying styles between elements</TITLE> <P>The <TT>Update</TT> and <TT>Copy</TT> buttons are used to copy style sheet settings from one element to another, as a convenience in style sheet editing.</P> <LIST TYPE="1"> <ITEM><P>Select the element whose style you want to modify, using the <MENU>Edit Style</MENU> command from the browser (or the SGML Tree) popup menu.</P></ITEM> <ITEM><P>Click on the <BUTTON>>></BUTTON> beside the <TT>Property</TT> field to unfold the style sheet editor window to its full extent.</P></ITEM> <ITEM><P>Select the element whose style you want to copy from the <TT>Defined Elements</TT> list. Pressing the <BUTTON>Copy</BUTTON> will copy the style settings to the current element.</P> <P>Picking an element from the <TT>Defined Elements</TT> list and pressing the <BUTTON>Update</BUTTON> makes the selected element the current element. This is useful when you want to directly edit the settings of a previously defined element.</P></ITEM> </LIST> </SUBSECT2> </SUBSECT1> </SECTION> <SECTION ID="TIPS"><TITLE>Style Sheet Design Tips</TITLE> <P>Here are a few style sheet design tips to help you get started.</P> <LIST TYPE="2"> <ITEM><P>Assign a suitable document font and margin settings (using <TT>Space Left</TT>, <TT>Space Above</TT>, <TT>Space Below</TT> and <TT>Space Right</TT>, respectively) to the top element. The top element is easily reached by clicking the button marked <TT>P</TT> in the style sheet dialog.</P></ITEM> <ITEM><P>Apply the <TT>Preview</TT> preview button before committing your editing changes.</P></ITEM> <ITEM><P>Use element qualification to assign formatting contexts.</P></ITEM> <ITEM><P>Open up the SGML Tree to visualize the structure of the document instance, and work your way from top to bottom in the element hierarchy.</P></ITEM> <ITEM><P>When creating spacing around an element, strive for <EM>consistency</EM>. Also, think of the adjacency of elements: The <TT>Space Below</TT> of one element may be too much if the next one also specifies <TT>Space Above</TT>. Spacing is perhaps best used in conjunction with the style sheet <TT>Occurrence</TT> qualifier.</P></ITEM> <ITEM><P>Apply inheritance whenever possible, including setting of values relative parent elements. An example: let lists inherit their font, but set the <TT>Space Left</TT> value relative the parent—this is useful for nested lists.</P></ITEM> <ITEM><P>For portability, choose standard &platform; fonts whenever possible, keeping your choice of fonts to a strict minimum that mix well.</P></ITEM> <ITEM><P>Navigators usually look better when their contents is shrunk somewhat, with reasonable <XREF RID="EDITFUNC">minimum and maximum</XREF> settings.</P></ITEM> </LIST> </SECTION> ]]> </CHAPTER> <CHAPTER ID="NAVEDIT"><TITLE>Editing Navigators</TITLE> <P>Navigators are based on extraction criteria that describe what elements to display in the navigator window.</P> <P>The PRO version of &sp; includes a navigator editor for easy, interactive editing of navigators. Navigator entries can be displayed according to contextual criteria on immediate ancestors, and their contents formatted according to separate style specifications.</P> <P>Navigator definition files normally use the suffix <TT>.NAV</TT>. Their contents is straightforward SGML, consisting of a doctype element called <TT>TOC-DEF</TT>, which contains <TT>TOC</TT> elements. All relevant information is contained in attributes:</P> <P> <SQTABLE> <SQROW><!-- Row 1 --> <SQHEAD colstart=1 colspan=1 rowstart=1 rowspan=1> Element </SQHEAD> <SQHEAD colstart=2 colspan=1 rowstart=1 rowspan=1> Attribute </SQHEAD> <SQHEAD colstart=3 colspan=1 rowstart=1 rowspan=1> Purpose </SQHEAD> </SQROW> <SQROW><!-- Row 2 --> <SQCELL colstart=1 colspan=1 rowstart=2 rowspan=6> <P><TT>TOC-DEF</TT></P> </SQCELL> <SQCELL colstart=2 colspan=1 rowstart=2 rowspan=1> <P><TT>DTD</TT></P> </SQCELL> <SQCELL colstart=3 colspan=1 rowstart=2 rowspan=1> <P>Contains the public identifier of the DTD to which the navigator applies.</P> </SQCELL> </SQROW> <SQROW><!-- Row 3 --> <SQCELL colstart=2 colspan=1 rowstart=3 rowspan=1> <P><TT>NAME</TT></P> </SQCELL> <SQCELL colstart=3 colspan=1 rowstart=3 rowspan=1> <P>Contains the symbolic name of the navigator, to be displayed in the <MENU>Navigator</MENU> menu.</P> </SQCELL> </SQROW> <SQROW><!-- Row 4 --> <SQCELL colstart=2 colspan=1 rowstart=4 rowspan=1> <P><TT>SCALE</TT></P> </SQCELL> <SQCELL colstart=3 colspan=1 rowstart=4 rowspan=1> <P>Defines the scaling of the font size (as a percentage) for textual navigator entries.</P> </SQCELL> </SQROW> <SQROW><!-- Row 5 --> <SQCELL colstart=2 colspan=1 rowstart=5 rowspan=1> <P><TT>MIN</TT></P> </SQCELL> <SQCELL colstart=3 colspan=1 rowstart=5 rowspan=1> <P>Defines the minimum permitted font size (in pixels) for textual navigator entries.</P> </SQCELL> </SQROW> <SQROW><!-- Row 6 --> <SQCELL colstart=2 colspan=1 rowstart=6 rowspan=1> <TT>MAX</TT> </SQCELL> <SQCELL colstart=3 colspan=1 rowstart=6 rowspan=1> <P>Defines the maximum permitted font size (in pixels) for textual navigator entries.</P> </SQCELL> </SQROW> <SQROW><!-- Row 7 --> <SQCELL colstart=1 colspan=1 rowstart=7 rowspan=2> <P><TT>TOC</TT></P> </SQCELL> <SQCELL colstart=2 colspan=1 rowstart=7 rowspan=1> <TT>BODY</TT> </SQCELL> <SQCELL colstart=3 colspan=1 rowstart=7 rowspan=1> <P>The element body for which the navigator entry applies.</P> </SQCELL> </SQROW> <SQROW><!-- Row 8 --> <SQCELL colstart=2 colspan=1 rowstart=8 rowspan=1> <P><TT>TITLE</TT></P> </SQCELL> <SQCELL colstart=3 colspan=1 rowstart=8 rowspan=1> <P>The element containing the title for the navigation block.</P> </SQCELL> </SQROW> </SQTABLE> </P> <![ %PRO; [ <SECTION ID="LAUNCHNA"><TITLE>Launching the Navigator Editor</TITLE> <P>The Navigator Editor is launched by positioning the cursor over the element to include in the navigator and selecting <MENU>Navigator Entry…</MENU> from the browser popup menu displayed when the <![ %windows; [right ]]><![ %motif; [right ]]>mouse button is depressed.</P> <P>You can also launch the editor by selecting <MENU>Edit Navigator…</MENU> from the <MENU>Navigator</MENU> menu.</P> <SUBSECT1 ID="EDITFUNC"><TITLE>Editor Functionality</TITLE> <P>The Navigator Editor presents the element to include in a pull-down menu that displays the element in its current context, to specify a contextual requirement for its inclusion in the navigator.</P> <P>The navigator normally uses the same style sheet as that being used by the browser. As the kind of items often used for navigation are titles at various levels, inserting the elements <Q>as is</Q> would be aesthetically unpleasing due to the large font sizes normally used for titles. For this reason, you can specify a general scaling (as a percentage), as well as minimum and maximum font sizes (in pixels) for the navigator entry font.</P> <P>The <BUTTON>P</BUTTON> button is used to traverse the direct ancestors of the element when you have selected <MENU>Navigator Entry…</MENU> while in the browser window. When the Navigator Editor has been launched from the <MENU>Navigator</MENU> menu, the <BUTTON>P</BUTTON> button is dimmed as there is no well-defined location from where one could traverse the SGML Tree.</P> <SUBSECT2><TITLE>Creating Navigators</TITLE> <P>See the section <XREF RID="CREATNAV"><EM>Creating a New Navigator</EM></XREF> on how to create navigators.</P> </SUBSECT2> <SUBSECT2><TITLE>Editing Navigators</TITLE> <SUBSECT3><TITLE>Adding a Navigator Entry</TITLE> <P>To have an element (such as a title or a graphic) displayed in a navigator, position the cursor over the element, and pick <MENU>Navigator Entry</MENU> from the browser popup menu. This will launch the Navigator Editor, with the element in the <TT>Navigator Entry</TT> pull-down menu. The pull-down menu contains the element in context, and you would normally pick the first level of containment, so that your navigators will automatically support the folding behavior derived from the markup hierarchy. Once you have picked the element in context, click on the <BUTTON>Add</BUTTON>. The element will then be placed in the list of <TT>Defined Entries</TT>. Clicking the <BUTTON>OK</BUTTON> button to confirm your editing changes.</P> </SUBSECT3> <SUBSECT3><TITLE>Deleting a Navigator Entry</TITLE> <P>To delete a navigator entry, launch first the Navigator Editor. Select the navigator definition to delete from the list of <TT>Defined Entries</TT> and click the <BUTTON>Remove</BUTTON> button. Finally, click the <BUTTON>OK</BUTTON> button to confirm your editing changes and exit the Navigator Editor.</P> </SUBSECT3> </SUBSECT2> <SUBSECT2><TITLE>The Locate Setting</TITLE> <P>At the bottom of the Editor dialog is a <TT>Locate</TT> checkbox, whose value can be either <TT>Body</TT> or <TT>Title</TT>. This is usually set to the value <TT>Title</TT>: when the navigator entry is clicked upon, the browser scrolls to the location of the item being displayed in the browser. In some circumstances, you may prefer to have the browser scrolled to the <TT>Body</TT> of the element instead.</P> <P>An example will make this clear. Assume that you want to include figure captions in your navigator, and that captions are <EM>beneath</EM> the figures. With the <TT>Locate</TT> setting set to <TT>Title</TT>, the caption will be topmost when you click upon the corresponding navigator entry, with the figure scrolled out of sight. To keep the figure in sight, you will need a containing element for both the caption and the figure. You would then set the caption element to be contextually qualified by the containing element and set <TT>Locate</TT> to <TT>Body</TT>.</P> </SUBSECT2> </SUBSECT1> <SUBSECT1><TITLE>Specifying an Alternative Style Sheet</TITLE> <P>The navigator normally uses the same style sheet as that being used by the browser. To base a navigator on a specified style sheet (instead of using the style sheet of the fulltext view), you need to add an entity pointing at the style sheet and name this entity <TT>StyleSpec</TT> (case <EM>is</EM> significant) in the navigator definition. The navigator definition begins with a doctype declaration such as: <LIT> <!DOCTYPE TOC-DEF PUBLIC "-//Synex Information AB//DTD Navigator Explorer//EN"> </LIT> </P> <P>Assuming your style sheet definition file is <TT>style.ssh</TT>, simply add the style sheet entity to the local declaration subset: <LIT> <!DOCTYPE TOC-DEF PUBLIC "-//Synex Information AB//DTD Navigator Explorer//EN" [ <!ENTITY StyleSpec SYSTEM "style.ssh"> ]> </LIT> That's all there is to it. </P> </SUBSECT1> </SECTION> ]]> </CHAPTER> </BODY> <APPMAT> <APPENDIX><TITLE>Troubleshooting</TITLE> <P>When &p; processes an SGML document, there is some complex processing going on. The document's DTD, its associated style sheets, and its navigator definitions must be retrieved; possibly the <TT>CATALOG</TT> and <TT>ENTITYRC</TT> files as well. Then &p; parses the files needed, and brings up the result fully formatted on-screen. Any one of these processing steps may fail, for any number of reasons: the files may not be valid SGML, files are not found, or whatever. &p; does its best to recover gracefully from such processing errors.</P> <SECTION ID="PARSEDOC"><TITLE>Parsing of Documents</TITLE> <P>&p; is not a validating SGML parser. It expects the SGML documents to be normalized and correct, meaning that each element must be encapsulated by markup. <TT>SHORTTAG</TT> is the only markup minimization feature that is fully supported.</P> <P>Even so, &p; does a good job of making sanity checks on the SGML source, as e.g. all of the hyperlinking is created by the application's inherent knowledge of the corresponding concept. When there is a parsing problem, &p; will report it and let you locate the offending passage for possible remedial action.</P> </SECTION> <SECTION ID="PARSEDEC"><TITLE>Parsing of the SGML declaration</TITLE> <P>The parser does not use or interpret the SGML declaration, but knows how to skip its contents in order to reach the DTD. For more information on technical aspects, please consult the <XREF RID="TR-MAN">&p; Technical Reference</XREF>.</P> </SECTION> </APPENDIX> <APPENDIX><TITLE>Keyboard Shortcuts</TITLE> <P>&p; supports the use of <EM>mnemonics</EM> for accessing menus and commands from the keyboard, where a mnemonic is a letter that is associated with the menu or command. Mnemonics are always underlined for easy identification.</P> <P>You can bring down a menu by holding the <TT>Alt</TT> key down and simultaneously pressing the key with the mnemonic letter. Whenever a menu is visible, you can invoke the command corresponding to a mnemonic just by pressing its key.</P> <P>In addition, there are a number of <EM>keyboard shortcuts</EM> for invoking various &p; commands, listed in the tables below.</P> <![ %windows; [ <TABLE> <TBODY><HEAD>File Menu</HEAD> <HEAD>Keyboard Equivalent</HEAD> <HEAD>Description</HEAD> <ROW> <CELL><P>Reload</P></CELL> <CELL><P>Ctrl+R</P></CELL> <CELL><P>Reparse the current file.</P></CELL> </ROW> ]]> <![ %PRO; [ <ROW> <CELL><P>Print</P></CELL> <CELL><P>Ctrl+P</P></CELL> <CELL><P>Print the current file.</P></CELL> </ROW> ]]> <ROW> <CELL><P>Exit</P></CELL> <CELL><P>Ctrl+F4</P></CELL> <CELL><P>Terminates the application.</P></CELL> </ROW> </TBODY> </TABLE> <TABLE> <TBODY><HEAD>Edit Menu</HEAD> <HEAD>Keyboard Equivalent</HEAD> <HEAD>Description</HEAD> <ROW> <CELL><P>Copy</P></CELL> <CELL><P>Ctrl+Ins</P></CELL> <CELL><P>Paste the contents of the clipboard.</P></CELL> </ROW> <ROW> <CELL><P>Search…</P></CELL> <CELL><P>Ctrl+S</P></CELL> <CELL><P>String searches the document for the corresponding string.</P></CELL> </ROW> <ROW> <CELL><P>First</P></CELL> <CELL><P>Ctrl+F2</P></CELL> <CELL><P>Scrolls to the next undisplayed occurrence of the sought string.</P></CELL> </ROW> <ROW> <CELL><P>Previous</P></CELL> <CELL><P>F2</P></CELL> <CELL><P>Scrolls to the previous undisplayed occurrence of the sought string.</P></CELL> </ROW> <ROW> <CELL><P>Next</P></CELL> <CELL><P>F3</P></CELL> <CELL><P>Scrolls to the next undisplayed occurrence of the sought string.</P></CELL> </ROW> <ROW> <CELL><P>Last</P></CELL> <CELL><P>Ctrl+F3</P></CELL> <CELL><P>Scrolls to the last occurrence of the sought string.</P></CELL> </ROW> <ROW> <CELL><P>Back</P></CELL> <CELL><P>Ctrl+B</P></CELL> <CELL><P>Backtrack to a previous location.</P></CELL> </ROW> <ROW> <CELL><P>Forward</P></CELL> <CELL><P>Ctrl+F</P></CELL> <CELL><P>Return after backtracking.</P></CELL> </ROW> </TBODY> </TABLE> <![ %PRO; [ <TABLE> <TBODY><HEAD>Options Menu</HEAD> <HEAD>Keyboard Equivalent</HEAD> <HEAD>Description</HEAD> <ROW> <CELL><P>Show Tags</P></CELL> <CELL><P>Ctrl+T</P></CELL> <CELL><P>Toggle the display of tags.</P></CELL> </ROW> <ROW> <CELL><P>Show Hot Spots</P></CELL> <CELL><P>Ctrl+H</P></CELL> <CELL><P>Toggle the display of hot spots.</P></CELL> </ROW> </TBODY> </TABLE> <TABLE> <TBODY><HEAD>Webs Menu</HEAD> <HEAD>Keyboard Equivalent</HEAD> <HEAD>Description</HEAD> <ROW> <CELL><P>Annotate</P></CELL> <CELL><P>Ctrl+A</P></CELL> <CELL><P>Annotate selection</P></CELL> </ROW> <ROW> <CELL><P>Bookmark</P></CELL> <CELL><P>Ctrl+M</P></CELL> <CELL><P>Attach bookmark to selection.</P></CELL> </ROW> <ROW> <CELL><P>Begin Link</P></CELL> <CELL><P>Ctrl+L</P></CELL> <CELL><P>Create source anchor in a link.</P></CELL> </ROW> <ROW> <CELL><P>Connect Link</P></CELL> <CELL><P>Ctrl+C</P></CELL> <CELL><P>Connect target anchor to source anchor.</P></CELL> </ROW> </TBODY> </TABLE> ]]> <![ %mac; [ <P> <LIT> ************************************ * COPY NEEDS TO BE ADDED FOR MAC * ************************************ </LIT> </P> ]]> <![ %motif; [ <P> <LIT> ************************************** * COPY NEEDS TO BE ADDED FOR MOTIF * ************************************** </LIT> </P> ]]> </APPENDIX> </APPMAT> </BOOK>