home *** CD-ROM | disk | FTP | other *** search
/ Computer Buyer 1996 May / buyer-0596.iso / internet / hotmetal / doc.z / HOTMETAL.TXT < prev    next >
Text File  |  1995-02-09  |  188KB  |  5,187 lines

  1.  
  2.             SoftQuad HoTMetaL for Microsoft Windows
  3.  
  4.  
  5. Standard identification
  6.  
  7. SoftQuad HoTMetaL is an SGML Application Conforming to International
  8. Standard ISO 8879 - Standard Generalized Markup Language.
  9.  
  10.  
  11. Published by
  12.  
  13. SoftQuad Inc.
  14. 56 Aberfoyle Crescent
  15. Suite 810
  16. Toronto, Canada M8X 2W4
  17. Telephone: (416) 239-4801
  18. Fax: (416) 239-7105
  19. Internet: hotmetal@sq.com
  20. WWW: http://www.sq.com
  21.  
  22.  
  23. Document version
  24.  
  25. SoftQuad HoTMetaL for Microsoft Windows
  26. Second Edition (February 1995) 
  27.  
  28. SoftQuad Inc. makes no warranty of any kind with respect to
  29. the completeness or accuracy of this book. SoftQuad may make
  30. improvements and/or changes to the product(s) and/or programs
  31. described in this book at any time and without notice.
  32.  
  33.  
  34. Copyrights and trademarks
  35.  
  36. (c) 1995 SoftQuad Inc. All rights reserved.
  37.  
  38. No part of this book may be reproduced, stored in a retrieval
  39. system, or transmitted in any form or by any means--electronic,
  40. mechanical, recording, or otherwise--without the prior written
  41. consent of the publisher, excepting brief quotes used in connection
  42. with reviews written specifically for inclusion in a magazine
  43. or newspaper.
  44.  
  45.  SoftQuad HoTMetaL  and SoftQuad HoTMetaL PRO are   trademarks
  46.  of SoftQuad Inc.
  47.  
  48. NCSA Mosaic is a trademark of the University of Illinois.
  49.  
  50. Enhanced NCSA Mosaic is a trademark of Spyglass, Inc.
  51.  
  52. Netscape is a trademark of Netscape Communications Corp.
  53.  
  54. Microsoft Windows is a trademark of Microsoft Corporation.
  55.  
  56.  
  57. Notice
  58.  
  59. Agencies of the United States Government please note: 
  60.  
  61. RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by
  62. the Government is subject to restrictions as set forth in subparagraph
  63. (c)(1)(ii) of the Rights in Technical Data and Computer Software
  64. clause at DFARS 52.227-7013 and in similar clauses in the FAR
  65. and NASA FAR Supplement.
  66.  
  67. 1. About this manual
  68.     1.1. Your suggestions
  69.  
  70. 2. A guide for the perplexed
  71.     2.1. Purpose: editors and browsers
  72.     2.2. An overview of the menus
  73.     2.3. How to run HoTMetaL
  74.     2.4. Associating HoTMetaL with HTML files
  75.     2.5. Setting the HoTMetaL directory
  76.     2.6. Creating and editing files
  77.         2.6.1. Creating a new file
  78.         2.6.2. Editing an existing HTML file 
  79.     2.7. Configuring HoTMetaL
  80.         2.7.1. Configuration files
  81.         2.7.2. Configuration variables read on start-up!
  82.         2.7.3. Setting parameters in the configuration files
  83.             2.7.3.1. Basic format for setting variables
  84.     2.8. Launching browsers and viewers
  85.     2.9. Text and markup
  86.     2.10. Templates
  87.     2.11. A tutorial on creating documents with HoTMetaL
  88.         2.11.1. Getting started: a basic document
  89.         2.11.2. Character formatting: Adding emphasis to inline text
  90.         2.11.3. Formatting blocks of text
  91.         2.11.4. Lists
  92.             2.11.4.1. Ordered (numbered) lists
  93.             2.11.4.2. Unordered lists
  94.         2.11.5. Links and URLs
  95.             2.11.5.1. Anchors
  96.             2.11.5.2. Links within the same document
  97.             2.11.5.3. Images
  98.         2.11.6. Forms
  99.             2.11.6.1. Actions
  100.             2.11.6.2. Creating a text box
  101.             2.11.6.3. Entering several lines of text
  102.             2.11.6.4. Presenting a list of choices
  103.             2.11.6.5. Check boxes
  104.             2.11.6.6. Radio buttons
  105.             2.11.6.7. Reset
  106.             2.11.6.8. Submitting the form
  107.     2.12. HTML quick reference
  108.         2.12.1. Overview
  109.         2.12.2. Block formatting
  110.         2.12.3. Character formatting
  111.             2.12.3.1. Line breaks
  112.             2.12.3.2. Horizontal lines
  113.         2.12.4. List elements
  114.         2.12.5. Link elements
  115.             2.12.5.1. Links within the same document
  116.             2.12.5.2. `Hot images'
  117.             2.12.5.3. Images with hot spots
  118.         2.12.6. Forms
  119.         2.12.7. Other elements
  120.         2.12.8. Obsolete elements
  121.         2.12.9. Proposed elements
  122.     2.13. If you see something you like...
  123.     2.14. For further information...
  124.     2.15. The structure of HTML documents
  125.         2.15.1. Rules files
  126.     2.16. Commands for inserting markup
  127.     2.17. Screen formatting
  128.         2.17.1. Styles
  129.         2.17.2. Displaying images
  130.         2.17.3. Previewing the document
  131.         2.17.4. Displaying icons
  132.         2.17.5. Displaying a document outline
  133.         2.17.6. Newlines
  134.     2.18. Attributes
  135.         2.18.1. Viewing attribute values
  136.         2.18.2. Editing attributes
  137.     2.19. Netscape support
  138.  
  139. 3. The File menu
  140.     3.1. New
  141.     3.2. Open...
  142.         3.2.1. Error checking
  143.     3.3. Open Template...
  144.         3.3.1. Opening a template
  145.         3.3.2. Creating your own templates
  146.             3.3.2.1. Templates directory
  147.             3.3.2.2. Creating templates
  148.             3.3.2.3. Installing a template
  149.     3.4. Save 
  150.         3.4.1. Save options
  151.     3.5.  Save As...
  152.     3.6. Close File
  153.     3.7. Preview
  154.     3.8. Publish...
  155.         3.8.1. Finding and Replacing URLs
  156.     3.9. Exit
  157.  
  158. 4. The Edit menu
  159.     4.1. Undo
  160.         4.1.1. Undo limit
  161.     4.2. Redo
  162.     4.3. Cut
  163.     4.4. Copy
  164.     4.5. Paste
  165.     4.6. Find and Replace...
  166.         4.6.1. Specifying the search and replace strings
  167.         4.6.2. Command buttons
  168.             4.6.2.1. Find
  169.             4.6.2.2. Replace
  170.             4.6.2.3. Replace then Find
  171.             4.6.2.4. Replace All
  172.         4.6.3. Specifying search patterns 
  173.         4.6.4. Elements and character entities as search patterns
  174.             4.6.4.1. Searching for text within an element
  175.         4.6.5. Error messages
  176.         4.6.6. Other search options
  177.             4.6.6.1. Whole Words
  178.             4.6.6.2. Case Sensitive
  179.             4.6.6.3. Backwards Search
  180.             4.6.6.4. Wrap
  181.             4.6.6.5. Find Patterns
  182.         4.6.7. Find In
  183.     4.7. Find Next
  184.  
  185. 5. The View menu
  186.     5.1. Numerical values
  187.         5.1.1. Examples
  188.         5.1.2. Relative and percentage settings
  189.     5.2. Show/Hide Tags
  190.     5.3. Show/Hide Link and Context View
  191.     5.4. Show/Hide Structure View
  192.         5.4.1. Editing in the structure view
  193.         5.4.2. Expanding the view of elements
  194.     5.5. Show Image
  195.     5.6. Show/Hide Inline Images
  196.     5.7. Show/Hide URLs
  197.     5.8. Character...
  198.         5.8.1. Setting an element's formatting
  199.         5.8.2. Setting the default formatting
  200.         5.8.3. Font Family
  201.             5.8.3.1. Adopt Current
  202.         5.8.4. Font Size
  203.         5.8.5. Font Style
  204.             5.8.5.1. Bold, Italic
  205.             5.8.5.2. Superscript, Subscript
  206.             5.8.5.3. Toggle
  207.             5.8.5.4. Adopt Current
  208.             5.8.5.5. Underline
  209.         5.8.6. Line Height
  210.         5.8.7. Justification
  211.         5.8.8. Fill
  212.             5.8.8.1. Saving filled elements
  213.         5.8.9. Format Types
  214.             5.8.9.1. Block
  215.             5.8.9.2. Inline
  216.     5.9. Separation...
  217.         5.9.1. Top and bottom space
  218.         5.9.2. Tabbed elements
  219.  
  220. 6. The Markup menu
  221.     6.1. Interpret Document
  222.     6.2. Insert Element...
  223.         6.2.1. The list of elements
  224.         6.2.2. Inserting an element
  225.         6.2.3. Restrictions
  226.         6.2.4. Required elements
  227.     6.3. Surround...
  228.     6.4. Change...
  229.     6.5. Edit SGML Attributes...
  230.     6.6. Insert Character Entity...
  231.         6.6.1. Inserting a character entity
  232.         6.6.2. Displaying character entities
  233.     6.7. Turn Rules Checking On/Off
  234.  
  235. 7. The Help menu
  236.     7.1. About HoTMetaL...
  237.     7.2. SoftQuad Home Page
  238. 8. The Window menu
  239.     8.1. Next
  240.     8.2. Previous
  241.     8.3. Cascade
  242.     8.4. Tile
  243.     8.5. Tile Vertically
  244.     8.6. Arrange Icons
  245.     8.7. Filenames in the Windows menu
  246. 9. The configuration mechanism
  247.     9.1. Configuring HoTMetaL
  248.         9.1.1. Configuration files
  249.         9.1.2. Configuration variables read on start-up!
  250.         9.1.3. A suggestion: base and personal configuration files
  251.             9.1.3.1. Base file
  252.             9.1.3.2. Personal file
  253.         9.1.4. Setting parameters in the configuration files
  254.             9.1.4.1. Basic format for setting variables
  255.             9.1.4.2. Referencing one variable from another
  256.             9.1.4.3. Appending and prepending to a variable
  257.     9.2. Control variables
  258.         9.2.1. Save options
  259.             9.2.1.1. export_doc_type_dec
  260.             9.2.1.2. export_sgml_dec
  261.             9.2.1.3. export_add_line_breaks
  262.             9.2.1.4. export_max_line_len
  263.             9.2.1.5.  export_convert_special_chars
  264.             9.2.1.6. export_eol
  265.         9.2.2. Find options
  266.             9.2.2.1. find_whole_words
  267.             9.2.2.2.  find_case_sensitive
  268.             9.2.2.3. find_backward
  269.             9.2.2.4. find_wrap
  270.             9.2.2.5. find_patterns
  271.         9.2.3. Markup options
  272.             9.2.3.1. include_required_elements
  273.             9.2.3.2. prompt_for_attrs
  274.         9.2.4. Display variables
  275.             9.2.4.1. default_font_name
  276.             9.2.4.2. default_font_size
  277.             9.2.4.3. tag_font_name
  278.             9.2.4.4. tag_font_size
  279.         9.2.5. Other options
  280.             9.2.5.1. html_browser
  281.             9.2.5.2. publish_change_from
  282.             9.2.5.3. publish_change_to
  283.             9.2.5.4. show_inline_images
  284.             9.2.5.5. undo_limit
  285.             9.2.5.6. view_gif
  286.     9.3. Location variables
  287.         9.3.1. Paths and directories
  288.             9.3.1.1. import_path
  289.             9.3.1.2. export_path
  290.             9.3.1.3. import_path
  291.             9.3.1.4. save_path
  292.             9.3.1.5. styles_path
  293.             9.3.1.6. templates_path
  294.         9.3.2.  Files
  295.             9.3.2.1. rgb_txt
  296.         9.3.3. File extensions
  297.             9.3.3.1. styles_ext
  298.     9.4. Tracing configuration variables
  299.  
  300. 10. Appendix 1: Keyboard shortcuts
  301.     10.1. Shortcuts
  302.     10.2. Mnemonics
  303.  
  304.  
  305. 1. About this manual
  306.  
  307. This manual consists of: 
  308.  
  309.   1. A guide for the perplexed, an introduction and tutorial
  310. for HoTMetaL and HTML.
  311.  
  312.   2. A chapter on each of the menus.
  313.  
  314.   3. A chapter on the configuration mechanism.
  315.  
  316.   4. An appendix on keyboard shortcuts.
  317.  
  318. 1.1. Your suggestions
  319.  
  320. SoftQuad welcomes your comments and suggestions on this documentation.
  321. These will be carefully considered for future versions of the
  322. HoTMetaL manual. You may contact us at the following address:
  323.  
  324.  
  325. hotmetal-doc@sq.com
  326.  
  327. 2. A guide for the perplexed
  328.  
  329. This chapter tells you how to start up HoTMetaL and gives the
  330. basic information you need to get going with creating and editing
  331. files. It contains the sections on the following topics: 
  332.  
  333.   -  Purpose of HoTMetaL
  334.  
  335.   -  How to run HoTMetaL
  336.  
  337.   -  Creating and editing files
  338.  
  339.   -  Configuring HoTMetaL
  340.  
  341.   -  Text and markup
  342.  
  343.   -  Tutorial on HoTMetaL and creating web documents
  344.  
  345.   -  HTML quick reference
  346.  
  347.   -  Screen formatting in HoTMetaL
  348.  
  349.   -  Attributes
  350.  
  351.  If you are new to HoTMetaL or HTML, you should certainly read
  352. this chapter, as it will help you get acquainted with the product
  353. and learn about the components and procedures you'll need to
  354. get your work done.
  355.  
  356. 2.1. Purpose: editors and browsers
  357.  
  358. HoTMetaL is an editor for creating files that can be read by
  359. graphical browsers (such as Mosaic) that are connected to the
  360. World Wide Web (WWW). The file format for such files is called
  361. Hypertext Markup Language (HTML). The main difference between
  362. an editor like HoTMetaL and browsers is that HoTMetaL is for
  363. editing files and browsers are for retrieving, displaying, and
  364. reading files. Any text editor can create an HTML file (but
  365. we believe that HoTMetaL is a more convenient and pleasant way
  366. of doing it!) Browsers take a file saved by HoTMetaL, consisting
  367. of text and markup, and do things like screen formatting, generating
  368. graphical forms, issuing mail messages, and so forth. It's important
  369. to understand that the different kinds of programs do different
  370. things. There are many browsers available, and they can process
  371. the same HTML file in different ways--and these are outside
  372. the control of HoTMetaL! What is in HoTMetaL's control is creating
  373. correctly marked-up documents.
  374.  
  375. Note: The HTML format is actually a type of file format based
  376. on the Standard Generalized Markup Language (SGML). All HTML
  377. files are SGML files (the converse is not true, however--there
  378. are many other file formats described by SGML, so most SGML
  379. files are not in HTML format.) 
  380.  
  381. Some browsers have a command that lets you see what the HTML
  382. form of the current document looks like; you can also save the
  383. file in HTML format and view it with a text editor. HoTMetaL
  384. provides an easy-to-use, graphical, structured editor for creating
  385. files in this format. 
  386.  
  387. 2.2. An overview of the menus
  388.  
  389. This section provides a summary of the main features.
  390.  
  391.   +  File menu: file manipulation, e.g., opening and closing
  392. files; filtering input files.
  393.  
  394.   +  Edit menu: cutting and pasting; finding and replacing strings
  395. and patterns; spell checking.
  396.  
  397.   +  View menu: screen formatting; displaying different views
  398. of the document.
  399.  
  400.   +  Markup menu: inserting and changing markup; editing URLs;
  401. checking document conformance.
  402.  
  403.   +  Help menu.
  404.  
  405. 2.3. How to run HoTMetaL
  406.  
  407. The usual way to run HoTMetaL is by double-clicking on the icon
  408. labeled `HoTMetaL' in the HoTMetaL Program Group.
  409.  
  410. The icon must have a command line, consisting of the name and
  411. location of the executable file, followed by some command line
  412. "options" associated with it. Normally you won't have to worry
  413. about this because the installation program creates the command
  414. line for you. If you need to change something, note the following:
  415.  
  416.   +  You can check the command line associated with this icon
  417. by using the Properties...  command in the Program Manager File
  418. menu. 
  419.  
  420.   +  You can also change the HoTMetaL command line by using
  421. the Properties... command.
  422.  
  423.   +  You can create a new program group using the New command
  424. in the Windows File menu, then add HoTMetaL to that group (also
  425. using the New command).
  426.  
  427.   +   Alternatively, you could add HoTMetaL to an existing program
  428. group. When adding HoTMetaL to a group, associate it with a
  429. command line like 
  430.  
  431. c:\sqhm\sqhm.exe
  432.  
  433.  
  434.  (Substitute the actual drive and directory for `c:\sqhm'. 
  435.  
  436.   +  An icon for the program item will be provided for you by
  437. HoTMetaL. 
  438.  
  439. Two other ways you can launch HoTMetaL from within a Windows
  440. session are:
  441.  
  442.   +  Using the File Manager, move to the directory where you
  443. installed HoTMetaL. Now double-click on the file sqhm.exe.
  444.  
  445.   +  Use the Run... command in the Windows Program Manager with
  446. an explicit command line such as: 
  447.  
  448. c:\sqhm\sqhm.exe
  449.  
  450.  
  451. 2.4. Associating HoTMetaL with HTML files
  452.  
  453. If you want to associate HoTMetaL with your HTML files (thereby
  454. allowing you to invoke HoTMetaL by clicking on that file in
  455. the File Manager) do the following:
  456.  
  457.   *  Choose the Associate... command in the File Manager's File
  458. menu.
  459.  
  460.   *  In the File with Extension text box, enter `htm'.
  461.  
  462.   *  In the Associate With text box, enter the command:
  463.  
  464. c:\sqhm\sqhm.exe
  465.  
  466. (Or click on Browse... and choose the program from a file chooser.)
  467.  
  468.   *  Click on the OK manual.
  469.  
  470. 2.5. Setting the HoTMetaL directory
  471.  
  472. The directory where HoTMetaL is installed is referred to as
  473. "the HoTMetaL directory" throughout this documentation.
  474.  
  475. If you are running a copy of the HoTMetaL executable file (sqhm.exe)
  476. that is not in the installation directory, it will not be able
  477. to find automatically the various auxiliary files and directories
  478. that it needs to run. In this situation you must inform HoTMetaL
  479. of the location of the HoTMetaL directory explicitly. There
  480. are two ways to do this: 
  481.  
  482.   +  Set the DOS environment variable called SQDIR to name the
  483. directory in which the software is installed. If the installation
  484. directory is  c:\sqhm, for example, SQDIR should be set (from
  485. the DOS prompt) as follows: 
  486.  
  487. set SQDIR=c:\sqhm
  488.  
  489.  
  490.  This setting could be added to your autoexec.bat file so that
  491. it will be executed every time your machine is booted. In any
  492. case, it must be done before you start up Windows.
  493.  
  494.   +  Specify the HoTMetaL directory on the HoTMetaL command
  495. line. 
  496.  
  497.   *  Click once on the HoTMetaL icon.
  498.  
  499.   *  Invoke the Properties... command in the Windows File menu.
  500.  
  501.   *  A dialog box will appear. In the Command line text box
  502. in this dialog, add the -sqdir option followed by the name of
  503. the HoTMetaL directory. For example:
  504.  
  505. d:\special\sqhm.exe -sqdir c:\sqhm
  506.  
  507. If you set the HoTMetaL directory using both methods, the value
  508. that you specify on the command line will take precedence. If
  509. you will be running more than one copy of HoTMetaL, and will
  510. have a different HoTMetaL directory for each, you should specify
  511. the directories on the command line.
  512.  
  513. 2.6. Creating and editing files
  514.  
  515. This section gives the basic information needed to start editing
  516. files with HoTMetaL.
  517.  
  518. 2.6.1. Creating a new file
  519.  
  520. HoTMetaL comes up with a new, empty HTML document ready for
  521. you to use. You can also create a new file as follows:
  522.  
  523.   *  Click on the New command in the File menu.
  524.  
  525.  HoTMetaL brings up a new, empty file.
  526.  
  527. 2.6.2. Editing an existing HTML file 
  528.  
  529. If you already have an HTML file that you want to edit:
  530.  
  531.   *  Click on the Open... command in the File menu.
  532.  
  533.   *  In the dialog box that appears, choose the file that you
  534. want to edit.
  535.  
  536. Once you've done this, HoTMetaL opens the file and you can begin
  537. editing.
  538.  
  539. Some "legacy" HTML documents cannot be opened because they contain
  540. bad markup. See the section on the Open... command for information
  541. on strategies for dealing with this.
  542.  
  543. 2.7. Configuring HoTMetaL
  544.  
  545. There are many aspects of HoTMetaL's behavior that you can configure
  546. to your personal needs or those of your site. For example, you
  547. can control default options in the Find and Replace dialog box,
  548. set options for the Save command, and specify the locations
  549. of various auxiliary files. You can run HoTMetaL without any
  550. problems using the default configuration, but at some point
  551. you may prefer to customize. This will be particularly true
  552. if several people will be using HoTMetaL on the samePC.  
  553.  
  554. Throughout this manual you will see references to features that
  555. can be configured by setting a value for a particular configuration
  556. variable. These are set by editing files called configuration
  557. files, discussed below. The chapter The configuration mechanism
  558. lists and describes all of the configuration variables used
  559. by HoTMetaL.
  560.  
  561. 2.7.1. Configuration files
  562.  
  563. The default configuration files read by HoTMetaL are the file
  564. sqhm.ini located in the directory where HoTMetaL is installed
  565. and the file sqhm.ini in the Microsoft Windows directory (usually
  566. c:\windows). These files contain configuration parameters called
  567. configuration variables. Variables set in the file in the Windows
  568. directory take precedence. 
  569.  
  570. You can specify that different files are read by the configuration
  571. mechanism: see the chapter The configuration mechanism for details.
  572.  
  573.  If a particular variable (parameter) has a setting in more
  574. than one file, the value in the file that is read last will
  575. take precedence. If a variable is defined more than once in
  576. the same file, the value that appears last in that file will
  577. take precedence over values that appear earlier in the file.
  578.  
  579. If a variable is not set in any configuration file, but is set
  580. in the environment, then the setting from the environment is
  581. used. If there is no setting in the configuration files or in
  582. the environment, then the built-in default value (if there is
  583. one) is used. If there is no default value, the variable is
  584. undefined.
  585.  
  586.  In summary, the value of a configuration variable is taken
  587. from the following sources, in the order given below:
  588.  
  589.   1. The configuration files.
  590.  
  591.   2. The environment.
  592.  
  593.   3. The built-in default.
  594.  
  595. 2.7.2. Configuration variables read on start-up!
  596.  
  597. Configuration files (and configuration variables in the environment)
  598. are read by HoTMetaL on start-up, so the changes you make will
  599. take effect the next time you run HoTMetaL--they will have no
  600. effect on a currently-running HoTMetaL. If you need them to
  601. take effect immediately, you will have to exit HoTMetaL and
  602. restart it.
  603.  
  604. 2.7.3. Setting parameters in the configuration files
  605.  
  606. You do not need to change any configuration variables unless
  607. you wish to customize the HoTMetaL configuration.
  608.  
  609. A variable is just a name that is assigned some value. You can
  610. change these variables by simply editing the configuration files,
  611. as appropriate, and making the desired changes. 
  612.  
  613. 2.7.3.1. Basic format for setting variables
  614.  
  615. Variables are assigned values by putting lines of the following
  616. form in the configuration files: 
  617.  
  618. variable = value
  619.  
  620.  
  621.  For example:
  622.  
  623. undo_limit=50
  624.  
  625.  
  626. (undo_limit is a configuration variable that specifies the number
  627. of successive commands that can be undone or reversed with HoTMetaL's
  628. Undo command. The default built in to HoTMetaL is 10; to raise
  629. this to 50, you would set the variable as in the example.)
  630.  
  631. You may put spaces or tabs on either side of the equal sign
  632. for readability. Also, if you prefer, you may substitute a colon
  633. (:) for the equal sign: 
  634.  
  635. undo_limit:50
  636.  
  637.  
  638. The effect is the same. 
  639.  
  640. You should not have any "white space" (spaces or tabs) at the
  641. end of the line.
  642.  
  643. You should take care to use legal values for all the configuration
  644. variables. Otherwise, HoTMetaL may behave in unexpected ways.
  645.  
  646. Further information on setting configuration variables can be
  647. found in the chapter The configuration mechanism.
  648.  
  649. 2.8. Launching browsers and viewers
  650.  
  651. Some HoTMetaL functionality (previewing the file with a browser
  652. and displaying graphics) relies on the existence of external
  653. applications. A configuration file (the file sqhm.ini in the
  654. Windows directory) tells HoTMetaL which programs to use to carry
  655. out these functions. The configuration variable html_browser
  656. in this configuration file specify the browser that will be
  657. used to preview your HTML files; view_gif and view_bmp specify
  658. the programs used to display GIF and BMP files. 
  659.  
  660. You must decide which programs you want to use for these purposes
  661. and then modify the values of the variables in the sqhm.ini
  662. file. 
  663.  
  664. You do this by opening the file with a text editor and making
  665. the desired changes. 
  666.  
  667. For example, if you want to use mosaic as your HTML browser
  668. you would put a line such as the following in sqhm.ini (this
  669. example uses a typical location for the mosaic.exe file--you
  670. must use the actual location on your PC):
  671.  
  672. html_browser=c:\mosaic\mosaic.exe
  673.  
  674.  The view_gif and view_bmp variables should specify a graphics
  675. viewing program such as c:\windows\psp.exe (again, you must
  676. use the actual location on your PC).
  677.  
  678. If you haven't already set these variables, you should do so
  679. now, because the tutorial below makes extensive use of the previewing
  680. feature.
  681.  
  682. 2.9. Text and markup
  683.  
  684. Like most electronic documents, an HTML file consists of text
  685. and markup. (Markup is special codes inside the file that indicate
  686. how part of the file is to be processed: for example, a word-processor
  687. file would contain markup indicating typographical features
  688. such as the font and font size for various parts of the document.)
  689. In an HTML file the markup consists primarily of elements. Elements
  690. normally consist of a start-tag that is placed at the beginning
  691. of a section of the text, and an end-tag that is placed at the
  692. end of that section of text. In HoTMetaL, when you insert an
  693. element in the document, you are actually positioning its start-
  694. and end-tags. When you want words and phrases to be considered
  695. as distinct elements, you surround them with tags. 
  696.  
  697. For example, a title in an HTML file would look like this: 
  698.  
  699. <title>This is a title!</title>
  700.  
  701. As you will see, when you are editing documents with HoTMetaL,
  702. you don't have to deal with tags on this level: the start- and
  703. end-tags are represented on the screen by icons, and HoTMetaL
  704. will insert both tags for you when you select a portion of the
  705. text to be surrounded by an element. (In fact, HoTMetaL doesn't
  706. let you type tags literally--if you type the `<' character,
  707. HoTMetaL will replace it by a `character entity' icon that looks
  708. like this: lt.)
  709.  
  710.  The same file may look different when displayed with different
  711. browsers. When you are marking up a document in HTML format,
  712. you mark up parts of the document according to their function
  713. in the structure of the document. For example, there are different
  714. elements for headings, lists, list items, paragraphs, titles,
  715. and many other parts of a document's structure. One of the reasons
  716. for using HTML (and SGML) is that the files can be readily re-processed
  717. in a different format by other publishing, browsing, database,
  718. etc., applications.
  719.  
  720. In addition to describing the structure of a document, some
  721. elements also describe the links to other documents that can
  722. be accessed from an HTML document.
  723.  
  724. Because HTML documents are structured documents, the elements
  725. must be arranged according to specific rules: otherwise, the
  726. document is considered invalid. When you are using HoTMetaL,
  727. you don't have to keep track of these rules yourself--HoTMetaL
  728. does it for you. One of HoTMetaL's most important features is
  729. automatic rules checking, which ensures that you do not violate
  730. the required structure as you are creating a document. As well,
  731. when you open or save a document, HoTMetaL checks that the markup
  732. is correct and complete.
  733.  
  734. Many HTML browsers have permitted a very loose, unstructured
  735. document format. Therefore, if you are editing existing HTML
  736. files, you may find that the structure that HoTMetaL imposes
  737. on documents is somewhat constraining. If you need to, you can
  738. relax these constraints using the Turn Rules Checking Off command
  739. in HoTMetaL's Special menu. Because there is an emerging trend
  740. toward browsers that require a stricter document structure,
  741. we believe that you will find it to your advantage to create
  742. all your new HTML documents with HoTMetaL's default rules in
  743. force. It will also be worthwhile to modify existing documents
  744. to conform to these rules. 
  745.  
  746. The document-structuring rules built in to HoTMetaL are designed
  747. to be flexible while at the same time maintaining a useful document
  748. structure. If an existing `legacy' document (one that was not
  749. created with HoTMetaL!) does not conform to these rules, HoTMetaL's
  750. Open... command will give you the opportunity to pass the document
  751. through a filter that will attempt to adjust the markup so that
  752. the document can be opened. You also have the choice of opening
  753. the document as a text document and editing it by hand. Once
  754. the errors are fixed, you can use the Interpret Document command
  755. to do the equivalent of Open... on the text file.
  756.  
  757. 2.10. Templates
  758.  
  759. The following document templates are supplied with HoTMetaL,
  760. in the folder Templates in the HoTMetaL folder. You can open
  761. these with the  Open... command in the File menu, or, more conveniently,
  762. with the Open Template... command in the File menu (this command
  763. opens the correct folder automatically).
  764.  
  765.   +  custreg.htm - example of a form.
  766.  
  767.   +  deflist.htm - example of a definition list.
  768.  
  769.   +  img.htm, imgs.htm - documents with images.
  770.  
  771.   +  HomePage.htm - a Home Page.
  772.  
  773.   +  h1.htm, h2.htm, h3.htm - examples of the use of heading
  774. elements.
  775.  
  776.   +  lolist.htm, lulist.htm, solist.htm, sulist.htm - examples
  777. of lists.
  778.  
  779.   +  paras.htm - a simple document with a few paragraphs.
  780.  
  781.   +  Readme.htm - a list of templates.
  782.  
  783. 2.11. A tutorial on creating documents with HoTMetaL
  784.  
  785. If you're new to creating web (HTML) documents, you may want
  786. to use this short tutorial.
  787.  
  788. The tutorial covers the following topics: 
  789.  
  790.   +  The basic document: titles, headers, and paragraphs.
  791.  
  792.   +  Character formatting: formatting inline text
  793.  
  794.   +  Block formatting
  795.  
  796.   +  Lists: ordered and unordered lists
  797.  
  798.   +  Links and URLs: anchors and images.
  799.  
  800. The tutorials don't cover each topic exhaustively, but give
  801. you enough information for you to master a topic after obtaining
  802. additional details from the HTML Quick Reference which you'll
  803. find after the tutorial.
  804.  
  805. The first part of the tutorial may be used as a "quick start"
  806. that shows you how to create a file with HoTMetaL. When you've
  807. finished that section, you can continue with the other sections
  808. or, if you feel comfortable using or experimenting with HTML
  809. on your own, you can skip over the rest of the tutorial and
  810. refer to the HTML Quick Reference section when you need to find
  811. out something about HTML.
  812.  
  813. 2.11.1. Getting started: a basic document
  814.  
  815.   *  Start up HoTMetaL. 
  816.  
  817.   *  Choose Insert Element... in the Markup menu, or type Ctrl-I
  818.  at the keyboard.
  819.  
  820. You will see a dialog box containing a list of elements that
  821. are valid at this point in the document. Elements are the "building
  822. blocks" of your document. Since the document is empty right
  823. now, any element is valid. However, we'll start by inserting
  824. the top-level element, which should be highlighted.
  825.  
  826. You will probably find it convenient to pin this dialog on the
  827. screen, by clicking on the button in the upper left corner of
  828. the dialog box, and choosing the Pin command from the menu that
  829. appears.
  830.  
  831.   *  Make sure that the Include Required Elements check box
  832. is turned on.
  833.  
  834.   *  Double-click on the element HTML in the list of elements,
  835. or, if this element is already highlighted, click on the Insert
  836. Element button.
  837.  
  838. HoTMetaL now inserts an HTML element by inserting start-tag
  839. HTML and end-tag HTML icons. (Sometimes tags are called "commands",
  840. but this isn't really accurate.) HTML surrounds all the other
  841. elements in the document.
  842.  
  843. Notice that HoTMetaL has also inserted a HEAD element inside
  844. HTML, and a TITLE element inside HEAD. These elements are required
  845. in this context in the document. The insertion point  is inside
  846. TITLE. The words "Document Title" are not part of the text of
  847. the document: this is a prefix which is for screen display only.
  848.  
  849.   *  Inside the TITLE element, type a title for your sample
  850. document. 
  851.  
  852. When you display this document in a browser, the contents of
  853. this element will be displayed in the title bar.
  854.  
  855. The main part of your document is the body, contained in the
  856. BODY element.
  857.  
  858.   *  Move the insertion point  to the right of the HEAD end-tag.
  859.  
  860.   *  Insert a BODY element from the Insert Element dialog box
  861. (this is the only valid element at this point).
  862.  
  863. If you look at the Insert Element dialog box, you'll notice
  864. that you have many choices of elements to insert. However, it's
  865. normal to start your document with a heading. Web documents
  866. have six levels of headings, represented by the elements H1
  867. through H6.
  868.  
  869.   *  Insert an H1 element.
  870.  
  871. An H1 header will be used for major divisions in your document.
  872.  
  873.   *  Type the following (or text of your choice) inside the
  874. H1 element:
  875.  
  876. George Orwell
  877.  
  878. Now you're ready to insert some text.
  879.  
  880.   *  Move the insertion point  to the right of the H1 end-tag.
  881.  
  882.   *  Insert a P (paragraph) element.
  883.  
  884.   *  Type some text such as the following: 
  885.  
  886. George Orwell is best-known as the author of "Animal
  887. Farm" and "1984", and these books gave the language the
  888. overused adjective "Orwellian". However, these works were
  889. written relatively late in his life, and followed an impressive
  890. body of work that includes accounts of his experiences as
  891. a soldier in the Spanish Civil War, and as a "down-and-out"
  892. tramp roaming the English countryside.
  893.  
  894. You can begin smaller subdivisions of the document with lower-level
  895. (H2 through H6) headings. You can skip levels if you want, but
  896. your documents will usually look better if you don't.
  897.  
  898.   *  After the P element, insert an H2 element. 
  899.  
  900.   *  Type the text: 
  901.  
  902. Early life and education
  903.  
  904.   *  After the H2 element, insert a P element.
  905.  
  906.   *  Type the text: 
  907.  
  908. Orwell, whose real name was Eric Arthur Blair, was born
  909. in India in 1903. He was brought to England, along with his
  910. mother and older sister, in 1907. His early education was at
  911. a village school, and later at a private preparatory school.
  912. At the age of 14 he won a scholarship to the prestigious
  913. Eton College.
  914.  
  915. Now perhaps you'd like to see what this document will look like
  916. when it's published on the Web. But first, save the file: 
  917.  
  918.   *  Choose Save from the File menu, or typeCtrl-S  at the keyboard.
  919.  
  920.   *  Now, choose Preview from the File menu.
  921.  
  922. HoTMetaL will invoke a browser displaying the file you're editing.
  923. (if no browser is launched, then you should check that the html_browser
  924. configuration variable points to a browser program.)
  925.  
  926. As we suggested at the start of this section, you may wish to
  927. skip directly to the HTML Quick Reference, or continue with
  928. the extended tutorial.
  929.  
  930. 2.11.2. Character formatting: Adding emphasis to inline text
  931.  
  932. The techniques in this section are for formatting inline text--text
  933. that's embedded a paragraph or some other block of text. Techniques
  934. for formatting blocks are covered in the next section. In an
  935. HTML document, you add emphasis to a piece of text by surrounding
  936. it with an element. This is a little different from the approach
  937. of many word-processors, in which you would, for example, highlight
  938. a piece of text and choose a type style from a menu. 
  939.  
  940.   *  In the document you just created, highlight the words "Eric
  941. Arthur Blair".
  942.  
  943.   *  Choose Surround... from the Markup menu, or type Ctrl-U
  944. at the keyboard.
  945.  
  946. The list in the Surround dialog box gives all the elements that
  947. can surround the selection.
  948.  
  949.   *  Double-click on the element I (italic) in the list.
  950.  
  951. The selection is now surrounded by  I and I tag icons, and,
  952. depending on which style sheet you've chosen, should be formatted
  953. in italic. In any case, a browser will format it in italic--you
  954. can use Preview to try this out.
  955.  
  956. Of course, you don't always have to surround the text after
  957. you've typed it--you can insert an I element with Insert Element...
  958. and just type the text between the tags.
  959.  
  960. For more information on character formatting, see the section
  961. Character formatting in the HTML Quick Reference.
  962.  
  963. 2.11.3. Formatting blocks of text
  964.  
  965. There are several elements that you can use to surround parts
  966. of your document that require special formatting. For example,
  967. suppose you wish to add a block quote to the sample document
  968. you created above:
  969.  
  970.   *  Move the insertion point   to the right of the last P end-tag.
  971.  
  972.   *  Choose Insert Element... in the Markup menu, or type Ctrl-I
  973.  at the keyboard.
  974.  
  975.   *  Insert a BLOCKQUOTE element.
  976.  
  977.   *  Type the text: 
  978.  
  979. Orwell portrayed his prep school days in harsh terms
  980. in the essay "Such, Such Were the Joys...". This may have
  981. been the result of interpreting his early experiences in
  982. the light of his later political consciousness.
  983. (B. R. Jones)
  984.  
  985. Notice that the text is indented slightly to set off the quotation.
  986. A browser will display a block quote with similar special formatting.
  987.  
  988. For more information on block formatting, see the section Block
  989. formatting in the HTML  Quick Reference.
  990.  
  991. 2.11.4. Lists
  992.  
  993. You can insert five different types of lists in your document.
  994.  
  995. 2.11.4.1. Ordered (numbered) lists
  996.  
  997. Ordered lists are lists with numbered items. You don't have
  998. to add the numbers yourself--a browser will add these for you.
  999.  
  1000.  
  1001.   *  Move the insertion point  to the right of the BLOCKQUOTE
  1002. end-tag in the sample document.
  1003.  
  1004.   *  Insert an H2 element.
  1005.  
  1006.   *  Type: 
  1007.  
  1008. Orwell's Four Great Motives for Writing
  1009.  
  1010.   *  Move the insertion point   to the right of the H2 end-tag.
  1011.  
  1012.   *  Insert an OL (ordered list) element.
  1013.  
  1014. When you do this, HoTMetaL automatically inserts an LI (list
  1015. item) element. With one exception, all lists consist of one
  1016. or more LIs.
  1017.  
  1018.   *  Inside the LI element, type: 
  1019.  
  1020. Sheer egoism
  1021.  
  1022.   *  Make sure the insertion point  is just to the right of
  1023. the LI end-tag.
  1024.  
  1025.   *  Insert a new LI element.
  1026.  
  1027.   *  Inside the new LI, type: 
  1028.  
  1029. Aesthetic
  1030. enthusiasm
  1031.  
  1032.   *  Insert another LI element after the last one.
  1033.  
  1034.   *  Type: 
  1035.  
  1036. Historical impulse
  1037.  
  1038.   *  Insert another LI element after the last one.
  1039.  
  1040.   *  Type: 
  1041.  
  1042. Political purpose
  1043.  
  1044. To really see how ordered lists work, you should preview the
  1045. document: 
  1046.  
  1047.   *  Save the document.
  1048.  
  1049.   *  Choose Preview from the File menu.
  1050.  
  1051. As you can see, the browser has inserted the list numbers automatically.
  1052.  
  1053. 2.11.4.2. Unordered lists
  1054.  
  1055. An unordered list is one whose items aren't numbered, but instead
  1056. start with bullets of some kind. Actually there are several
  1057. kinds of unordered lists available to you: here we'll use the
  1058. most common and general-purpose list element, UL (unordered
  1059. list). In this section you'll also learn a new markup command.
  1060.  
  1061.   *  Move the insertion point  to a position between the OL
  1062. start-tag and the first LI start-tag.
  1063.  
  1064.   *  Choose Change... from the Markup menu, or type Ctrl-L 
  1065. at the keyboard.
  1066.  
  1067. The dialog box that appears is similar to the one you saw when
  1068. you used the Insert Element... and Surround... markup commands.
  1069. This time the list contains all the elements that can validly
  1070. replace the current element. (The current element is OL.) Not
  1071. surprising, your choices are all types of lists.
  1072.  
  1073.   *  Double click on UL in the list of elements.
  1074.  
  1075. The OL start- and end-tags have changed to UL tags. 
  1076.  
  1077.   *  Save the file.
  1078.  
  1079.   *  Choose Preview from the File menu, or type Ctrl-M at the
  1080. keyboard.
  1081.  
  1082. The browser now displays the list items with bullets rather
  1083. than numbers.
  1084.  
  1085. You can nest lists by inserting a UL, OL, etc., inside a list
  1086. item (LI). Some browsers will take account of this by changing
  1087. the list bullet for the nested list.
  1088.  
  1089. For more information on lists, see the section Lists in the
  1090.  HTML quick reference. To see examples of lists, you can use
  1091. the Open Template... command to open the templates lolist.htm,
  1092. lulist.htm, solist.htm, and sulist.htm.
  1093.  
  1094. 2.11.5. Links and URLs
  1095.  
  1096. It is normal for HTML documents to contain links to other documents,
  1097. which can be located anywhere on the WWW. These links are provided
  1098. by Universal Resource Locators (URLs), which name the location
  1099. and filename of a document, and the protocol used to access
  1100. it.
  1101.  
  1102. 2.11.5.1. Anchors
  1103.  
  1104. When you want to create "hot text" that someone can click on
  1105. in a browser and cause a document to be accessed, you use an
  1106. "anchor" (A) element.
  1107.  
  1108.   *  Move the insertion point  to a position just before the
  1109. BODY end-tag.
  1110.  
  1111.   *  Type the text:
  1112.  
  1113. See also the
  1114.  
  1115.   *  Insert an A element.
  1116.  
  1117.   *  Inside the A, type the text:
  1118.  
  1119. bibliography
  1120.  
  1121. The word "bibliography" is hot text. In a browser it will be
  1122. displayed in a different color than surrounding text.
  1123.  
  1124. The second step in creating an anchor is creating the URL. A
  1125.  URL is not part of the content of the element, like hot text
  1126. is. A URL is an attribute of the element.  
  1127.  
  1128.   *  Make sure the insertion point  is inside the A element.
  1129.  
  1130.   *  Choose Edit SGML Attributes... from the Markup menu.
  1131.  
  1132. This gives you a dialog box with entries (text boxes) for each
  1133. of the attributes. Right now you need to work with only one
  1134. of these.
  1135.  
  1136.   *  In the text box labelled HREF, type the following (without
  1137. any spaces between the parts):
  1138.  
  1139.   1. The characters "file:///".
  1140.  
  1141.   2. The name of the drive (without the colon) that the HoTMetaL
  1142. software is located on.
  1143.  
  1144.   3. A vertical bar, `|'.
  1145.  
  1146.   4. The directory (full path) that the HoTMetaL software is
  1147. located in, but instead of typing `\' (backslash) between the
  1148. directories, as you normally do in Windows, type `/' (slash).
  1149.  
  1150.   5. The filename "works.htm". 
  1151.  
  1152. What you type should look something like this:
  1153.  
  1154. file:///c|/sqhm/works.htm
  1155.  
  1156. The word "file" is a protocol  (also called a "scheme"), which
  1157. describes how the file referred to in the URL will be accessed
  1158. by a web browser. You are using the file protocol because the
  1159. file you're going to choose is on your local filesystem. If
  1160. the document were on a web server, you would choose the protocol
  1161. http. 
  1162.  
  1163. The directory component of the URL is expressed in the "standard"
  1164. format, which requires that the colon (:) be replaced by a vertical
  1165. bar, and that directories be separated by slashes.
  1166.  
  1167.   *  Click on the Apply button.
  1168.  
  1169. What this all means is, when someone clicks on the hot text
  1170. (the word "bibliography") in a browser, the browser will attempt
  1171. to locate the file(works.htm) referred to in the URL. 
  1172.  
  1173. To see how this works, you should view the document in a browser:
  1174.  
  1175.   *  Save the file.
  1176.  
  1177.   *  Choose Preview from the File menu, or typeCtrl-M  at the
  1178. keyboard.
  1179.  
  1180.   *  In the browser, double-click on the word "bibliography".
  1181.  
  1182. The browser will now display the fileworks.htm.
  1183.  
  1184. 2.11.5.2. Links within the same document
  1185.  
  1186. It's possible to make a link between two anchors in the same
  1187. document. Then, when you click on one of the anchors (call it
  1188. the "source") the browser window will scroll to the location
  1189. of the other anchor (the "destination"). 
  1190.  
  1191.   *  Move the insertion point  to a position just before the
  1192. first P end-tag.
  1193.  
  1194.   *  Choose Split from the Markup menu, or typeCtrl-P  at the
  1195. keyboard.
  1196.  
  1197.   *  In the new P element, type: 
  1198.  
  1199. One of his
  1200. well-known essays is 
  1201.  
  1202.   *  Insert an A element.
  1203.  
  1204.   *  Type: 
  1205.  
  1206. Why I Write
  1207.  
  1208.   *  Make sure the insertion point  is inside the anchor you
  1209. just created.
  1210.  
  1211.   *  Choose Edit SGML Attributes... from the Markup menu.
  1212.  
  1213. The dialog box that appears contains text boxes for each of
  1214. the elements attributes, labeled with the attribute name.
  1215.  
  1216.   *  In the HREF text box, type: 
  1217.  
  1218. #WHY
  1219.  
  1220. You have just set up the "source" anchor. This is the URL for
  1221. this anchor, even though it doesn't look like the URL you created
  1222. in a previous part of this tutorial. Now you have to set up
  1223. the "destination" anchor:
  1224.  
  1225.   *  Highlight the words "Four Great Motives" in the second
  1226. H2 element.
  1227.  
  1228.   *  Use the Surround... command to surround this text with
  1229. an A element.
  1230.  
  1231. In this instance you're not going to create a URL for the anchor,
  1232. rather, you're going to give this anchor a "name" by editing
  1233. one of its attributes.
  1234.  
  1235.   *  Make sure the insertion point  is inside the anchor you
  1236. just created.
  1237.  
  1238.   *  Choose Edit SGML Attributes... from the Markup menu.
  1239.  
  1240.   *  In the NAME text box, type: 
  1241.  
  1242. WHY
  1243.  
  1244.   *  Click on the OK button.
  1245.  
  1246. Now you're ready to see the effect of what you've just done.
  1247.  
  1248.   *  Save the file.
  1249.  
  1250.   *  Choose Preview from the File menu, or typeCtrl-M  at the
  1251. keyboard.
  1252.  
  1253.   *  If both of the anchors you just created are visible, resize
  1254. the browser window so that you can see only the first one.
  1255.  
  1256.   *  In the browser, double-click on the words "Why I Write".
  1257.  
  1258. The browser window will now scroll so that the location of the
  1259. "destination" anchor is visible.
  1260.  
  1261. In general, you can set up a "source" and "destination" anchor
  1262. pair by setting the NAME attribute of the destination anchor
  1263. to `string' and setting the HREF attribute (i.e., the URL) of
  1264. the source anchor to `#string'. This sets up a one-way link.
  1265. You can set up a two-way link by editing the two anchors so
  1266. that each one's NAME attribute corresponds to the other's HREF.
  1267.  
  1268. 2.11.5.3. Images
  1269.  
  1270. Web documents often include graphical images. Images are inserted
  1271. in a document using an element that is similar to the A element.
  1272.  
  1273.   *  Click on the View menu.
  1274.  
  1275.   *  If it contains the command Show Inline Images, choose this
  1276. command. If it contains the command Hide Inline Images, do nothing.
  1277.  
  1278.   *  Move the insertion point   to a position just to the right
  1279. of the   H1 end-tag.
  1280.  
  1281.   *  Insert an IMG (image) element. (If this element is not
  1282. visible in the Insert Element dialog box, just type the letter
  1283. `i' and the list will scroll to the proper position.)
  1284.  
  1285.  
  1286.  
  1287.   *  Choose Edit SGML Attributes... from the Markup menu.
  1288.  
  1289. Now you are going to give the HREF attribute of the IMG element
  1290. a value very similar to the first URL you created in the section
  1291. on anchors. It will be the same except for the filename, which
  1292. in this case is "author.gif". The URL will look something like
  1293. this:
  1294.  
  1295. file:///c|sqhm/author.gif
  1296.  
  1297.   *  Click on the Apply button.
  1298.  
  1299. When you do this, a graphical image will be displayed inline,
  1300. in the HoTMetaL document window. (This is not really George
  1301. Orwell, but another writer whose work you know if you're reading
  1302. this manual.)
  1303.  
  1304. The inline image will be displayed in the browser, too. 
  1305.  
  1306.   *  Save the file.
  1307.  
  1308.   *  Choose Preview from the File menu, or typeCtrl-M  at the
  1309. keyboard.
  1310.  
  1311. See the section Link elements in the HTML  quick reference for
  1312. more information on images; in particular, you will find information
  1313. on "hot images" and images with hot spots.
  1314.  
  1315. 2.11.6. Forms
  1316.  
  1317. There are certain elements that a browser will display as graphical
  1318. widgets, such as text fields or pop-up menus, that can accept
  1319. input from a user. A form in an HTML document is a set of such
  1320. elements that let the user enter some information and then call
  1321. a program, located on a web server, that processes the information.
  1322. For example, you could create a form that lets a user order
  1323. a product that you're selling: you can set up the form so that
  1324. when the user clicks on a "submit" button, the order is sent
  1325. to your order-processing program.
  1326.  
  1327. To implement this, you have to: 
  1328.  
  1329.   +  Create the form(s).
  1330.  
  1331.   +  Install on your server the program that will process the
  1332. form's data.
  1333.  
  1334. The second of these two steps is beyond the scope of HoTMetaL.
  1335. You will have to obtain supplementary documentation that explains
  1336. this mechanism, which is known as the CGI (Common Gateway Interface).
  1337. If you open the file faq.htm in the HoTMetaL folder you will
  1338. find a reference to a document on this topic. 
  1339.  
  1340. This tutorial explains how to properly set up a sample form.
  1341.  
  1342.  
  1343. We've noticed that many browsers still have bugs in their support
  1344. for forms. If something that you create in this tutorial doesn't
  1345. look the way it should when you display it with your favorite
  1346. browser, the problem may be with the browser. 
  1347.  
  1348. We suggest that for this exercise you create a new HTML document.
  1349.  
  1350.   *  Choose New from the File menu, or typeCtrl-N  at the keyboard.
  1351.  
  1352.   *  Enter the HTML, HEAD, TITLE, and BODY elements as you've
  1353. already learned to do.
  1354.  
  1355.   *  Now insert an H1 element, and type: 
  1356.  
  1357. Buy my
  1358. book!
  1359.  
  1360.   *  Insert a P element, and type: 
  1361.  
  1362. Do I have a deal
  1363. for you! Just click on the "Submit" button in the form below
  1364. to order any or all
  1365. of these best-sellers at a fraction of the regular cost!
  1366.  
  1367. (N.B.: This is not a tutorial on sales pitches!)
  1368.  
  1369. 2.11.6.1. Actions
  1370.  
  1371. Now you're ready to start constructing a form.
  1372.  
  1373.   *  Insert a FORM element after the P element.
  1374.  
  1375.   *  With the  insertion point inside the FORM element, choose
  1376. Edit SGML Attributes... in the Markup menu.
  1377.  
  1378. This gives you a dialog box in which you will give a value for
  1379. the ACTION attribute.
  1380.  
  1381.   *  In the ACTION  text box, type: 
  1382.  
  1383. http://www.sq.com/cgi-bin/quagmire
  1384.  
  1385. The "action" you've just specified refers to a program, located
  1386. on SoftQuad's HTTP server, that can process the data entered
  1387. in the form. At the end of the tutorial, you can submit the
  1388. form to this program. In a "real-life" situation, you would
  1389. probably specify a program on your own server, though in fact
  1390. you can specify programs located anywhere on the Web. 
  1391.  
  1392.   *  Set the attribute called METHOD to the value "GET".
  1393.  
  1394.   *  Click on the Apply button.
  1395.  
  1396. Another action that you can use is mailto: this causes the form
  1397. to be e-mailed to a specified address. (You can try this later:
  1398. for the purpose of this tutorial, please use the action described
  1399. above.)
  1400.  
  1401. To make use of mailto:
  1402.  
  1403.   *  Inside the FORM element, choose Edit SGML Attributes...
  1404. in the Markup menu.
  1405.  
  1406.   *  Set the ACTION attribute to the string "mailto:" followed
  1407. by the e-mail address to which you want the form sent, e.g.,
  1408.  
  1409. mailto:charles@windsor.org
  1410.  
  1411.   *  Set the METHOD attribute to "POST".
  1412.  
  1413. Some browsers do not support mailto. Also, in order for this
  1414. feature to work if your system is behind a firewall, you may
  1415. need to configure your browser to use the correct proxy server.
  1416.  
  1417. 2.11.6.2. Creating a text box
  1418.  
  1419. Now you'll enter the first element that generates a graphical
  1420. widget in the browser: 
  1421.  
  1422.   *  Enter a P element and type: 
  1423.  
  1424. Name: 
  1425.  
  1426.   *  Inside the paragraph, enter an INPUT element.
  1427.  
  1428. You can now preview the file to see what this looks like in
  1429. a browser: 
  1430.  
  1431.   *  Save the file.
  1432.  
  1433.   *  Choose Preview from the File menu, or type  Ctrl-M  at
  1434. the keyboard.
  1435.  
  1436. Notice that the browser has placed a  text box next to the word
  1437. "Name:".
  1438.  
  1439. You're not done with this INPUT element yet.
  1440.  
  1441.   *  Move the insertion point  inside the INPUT element.
  1442.  
  1443.   *  Choose the Edit SGML Attributes... command from the Markup
  1444. menu, or type Ctrl-] at the keyboard.
  1445.  
  1446. This brings up a dialog box that lets you edit the attributes
  1447. of the current element.
  1448.  
  1449.   *  In the  text box  for the attribute NAME, type: 
  1450.  
  1451. cust-name
  1452.  
  1453. This value is used when the browser sends the form's data to
  1454. the server, in order to identify which  text box, drop-down
  1455. list box, etc., a particular piece of data came from. 
  1456.  
  1457. Another attribute, SIZE, is used if you want to specify the
  1458.  text box's  length in characters.
  1459.  
  1460. 2.11.6.3. Entering several lines of text
  1461.  
  1462. A  text box  in a form just lets you enter one line of text.
  1463. If you need to allow your users to enter several lines of text
  1464. at once (to enter an address, for example), you should use the
  1465. TEXTAREA element.
  1466.  
  1467.   *  Insert a new P element and type: 
  1468.  
  1469. Address:
  1470.  
  1471.  
  1472.   *  After the text, insert a TEXTAREA element.
  1473.  
  1474.   *  Choose the Edit SGML Attributes... command from the Markup
  1475. menu, or type Ctrl-]  at the keyboard.
  1476.  
  1477.   *  Enter the following values for three of this element's
  1478. attributes:
  1479.  
  1480. NAME: cust_addr
  1481.  
  1482. ROWS: 5
  1483.  
  1484. COLS: 40
  1485.  
  1486. ROWS and COLS specify the dimensions of the widget: 5 lines
  1487. deep and 40 characters wide.
  1488.  
  1489.   *  Click on the Apply button.
  1490.  
  1491. Note: if you want a TEXTAREA to contain some default text, enter
  1492. it between the start- and end-tags.
  1493.  
  1494. Now you may want to see how the browser renders this object:
  1495.  
  1496.   *  Save the file.
  1497.  
  1498.   *  Choose Preview from the File menu, or type   Ctrl-M at
  1499. the keyboard.
  1500.  
  1501. The browser generates a multi-line field, which may also have
  1502. scroll bars.
  1503.  
  1504. 2.11.6.4. Presenting a list of choices
  1505.  
  1506. Sometimes you will want the user to make one choice from a list
  1507. of choices. In this example you'll see how to represent this
  1508. with  a drop-down list box.
  1509.  
  1510.   *  Insert a new P element, and type: 
  1511.  
  1512. Credit Card:
  1513.  
  1514.  
  1515.   *  After the text, insert a SELECT element.
  1516.  
  1517. HoTMetaL will ask you if you want to edit the attributes of
  1518. this element.
  1519.  
  1520.   *  Click on the Stop and edit button.
  1521.  
  1522.   *  Enter "card-name" for the NAME attribute, and `1' for the
  1523. SIZE attribute.
  1524.  
  1525.   *  Click on the Apply button.
  1526.  
  1527.   *  Inside the SELECT element, insert an OPTION element, and
  1528. type: 
  1529.  
  1530. Visa
  1531.  
  1532. The OPTION element represents one choice in the  a drop-down
  1533. list box. The text you typed inside the element is a label that
  1534. will appear in the  list box.
  1535.  
  1536.   *  Insert two more OPTION elements after this one, containing
  1537. the text "MasterCard" and "Amex", respectively.
  1538.  
  1539. To see what this looks like in the browser:
  1540.  
  1541.   *  Save the file.
  1542.  
  1543.   *  Choose Preview from the File menu, or type   Ctrl-M at
  1544. the keyboard.
  1545.  
  1546. Notice that the text you typed inside each of the OPTION elements
  1547. appears as labels on the  a drop-down list box.
  1548.  
  1549. If you wanted, you could have represented this list of choices
  1550. as a scrollable list rather than a  a drop-down list box. To
  1551. do this, you would set the SIZE attribute to 2 or greater; this
  1552. value would specify how many list items are shown at a time.
  1553. If you want to be able to choose more than one item from this
  1554. kind of list, set the MULTIPLE attribute to "MULTIPLE".
  1555.  
  1556. Just to complete this section of the form: 
  1557.  
  1558.   *  Insert a new P element after the last one, and type: 
  1559.  
  1560. Card number
  1561.  
  1562.   *  Insert an INPUT element.
  1563.  
  1564.   *  Choose Edit SGML Attributes... from the Markup menu, or
  1565. type Ctrl-]  at the keyboard.
  1566.  
  1567.   *  Set the NAME attribute to "card-num".
  1568.  
  1569.   *  Click on the Apply button.
  1570.  
  1571.  
  1572.  
  1573. 2.11.6.5. Check boxes
  1574.  
  1575. So far you have used the INPUT element only to represent  text
  1576. boxes.  Actually, this element can be used for a variety of
  1577. purposes. One of these is representing check boxes: you would
  1578. use this kind of box if you wanted the user to make a "yes/no"
  1579. choice. (This is different from aoption button  (see below),
  1580. which you would use when you wanted the user to choose one from
  1581. a group of choices.)
  1582.  
  1583.   *  Insert a new P element after the last one, and type: 
  1584.  
  1585. Check one or more titles:
  1586.  
  1587.   *  Insert a new P element after the last one, and type: 
  1588.  
  1589. The Dentistry of Frederic Chopin
  1590.  
  1591.   *  Insert an INPUT element.
  1592.  
  1593.   *   Choose Edit SGML Attributes... from the Markup menu, or
  1594. type Ctrl-]  at the keyboard.
  1595.  
  1596.   *  Set the TYPE attribute to "CHECKBOX". (This is the attribute
  1597. value that tells the browser that it should generate a check
  1598. box.)
  1599.  
  1600.   *  Set the NAME attribute to "chopin".
  1601.  
  1602.   *  Click on the Apply button.
  1603.  
  1604. Now add two more titles in the same way: 
  1605.  
  1606.   *  Insert a new P element after the last one, and type: 
  1607.  
  1608. Motors and Such by Eddy Schneider
  1609.  
  1610.   *  Insert an INPUT element.
  1611.  
  1612.   *  Set the TYPE attribute to "CHECKBOX" and the NAME attribute
  1613. to "motors".
  1614.  
  1615.   *  Insert a new P element after the last one, and type: 
  1616.  
  1617. HTML for Travellers
  1618.  
  1619.   *  Insert an INPUT element.
  1620.  
  1621.   *  Set the TYPE attribute to "CHECKBOX" and the NAME attribute
  1622. to "html".
  1623.  
  1624. To see what this looks like in the browser:
  1625.  
  1626.   *  Save the file.
  1627.  
  1628.   *  Choose Preview from the File menu, or type   Ctrl-M at
  1629. the keyboard.
  1630.  
  1631. Try clicking on the buttons with the mouse. You can turn on
  1632. all, any, or none of the buttons.
  1633.  
  1634. 2.11.6.6. Radio buttons
  1635.  
  1636. As we said above, you can also use the INPUT element to represent
  1637.  radio buttons. A group of   radio buttons  lets the user make
  1638. one (and only one) choice from a group of choices.
  1639.  
  1640.   *  Insert a new paragraph after the last one and type: 
  1641.  
  1642. Preferred
  1643. language:
  1644.  
  1645.   *  Insert a new paragraph after the last one.
  1646.  
  1647.   *  Insert an INPUT element.
  1648.  
  1649.   *   Choose Edit SGML Attributes... from the Markup menu, or
  1650. type Ctrl-]  at the keyboard.
  1651.  
  1652.   *  Set the following attribute values: 
  1653.  
  1654. NAME: language
  1655.  
  1656. VALUE: english
  1657.  
  1658. TYPE: RADIO
  1659.  
  1660. CHECKED: CHECKED
  1661.  
  1662.   *  Move the insertion point to the right of the INPUT end-tag
  1663. and type: 
  1664.  
  1665. English
  1666.  
  1667. Now add two more choices in the same way (keep all three choices
  1668. in the same paragraph):
  1669.  
  1670.   *  Insert an INPUT element.
  1671.  
  1672.   *  Set the following attribute values: 
  1673.  
  1674. NAME: language
  1675.  
  1676. VALUE: french
  1677.  
  1678. TYPE: RADIO
  1679.  
  1680.   *  Move the insertion point to the right of the INPUT end-tag
  1681. and type: 
  1682.  
  1683. French
  1684.  
  1685.   *  Insert an INPUT element.
  1686.  
  1687.   *  Set the following attribute values: 
  1688.  
  1689. NAME: language
  1690.  
  1691. VALUE: spanish
  1692.  
  1693. TYPE: RADIO
  1694.  
  1695.   *  Move the insertion point to the right of the INPUT end-tag
  1696. and type: 
  1697.  
  1698. Spanish
  1699.  
  1700. Notice the following things about the attribute values you've
  1701. just entered:
  1702.  
  1703.   1. Each TYPE attribute is set to "RADIO". This tells the browser
  1704. to generate a  radio button.
  1705.  
  1706.   2. Each NAME attribute has the same value, in this case, "language".
  1707. This causes all three   radio buttons  to be in the same group,
  1708. which means that the browser will allow only one of these three
  1709. to be checked at once. If the form contains another group of
  1710.   radio buttons,  the NAME attribute for all of its members
  1711. must be the same, but different from the value for the current
  1712. group.
  1713.  
  1714.   3. The value of the VALUE attribute is sent to the server
  1715. if the corresponding button is turned on when you submit the
  1716. form, thus telling the server which button in this group was
  1717. turned on.
  1718.  
  1719.   4. The first INPUT element in this group has the CHECKED attribute
  1720. set to "CHECKED". This tells the browser that this button should
  1721. be turned on by default when the form is first displayed.
  1722.  
  1723. To see what this looks like in the browser:
  1724.  
  1725.   *  Save the file.
  1726.  
  1727.   *  Choose Preview from the File menu, or type   Ctrl-M at
  1728. the keyboard.
  1729.  
  1730. Try clicking on the buttons with the mouse. You can turn on
  1731. only one of the radio buttons  at a time. The button labeled
  1732. "English" is initially turned on by default. 
  1733.  
  1734. 2.11.6.7. Reset
  1735.  
  1736. You can use the INPUT element to generate a button that restores
  1737. all the form's controls(text boxes, radio buttons, etc.)  to
  1738. their default values: 
  1739.  
  1740.   *  Insert a new P element after the last one.
  1741.  
  1742.   *  Insert an INPUT element.
  1743.  
  1744.   *   Choose Edit SGML Attributes... from the Markup menu, or
  1745. type  Ctrl-] at the keyboard.
  1746.  
  1747.   *  Set the following attribute values: 
  1748.  
  1749. TYPE: RESET
  1750.  
  1751. VALUE: "Reset defaults"
  1752.  
  1753. To see what this looks like in the browser:
  1754.  
  1755.   *  Save the file.
  1756.  
  1757.   *  Choose Preview from the File menu, or type  Ctrl-M  at
  1758. the keyboard.
  1759.  
  1760.   *  Enter some data in the form.
  1761.  
  1762.   *  Click on the Reset defaults button in the form.
  1763.  
  1764.  
  1765.  
  1766. The form's controls revert to their default values. The text
  1767. boxes are all blank and the check boxes are turned off. The
  1768. radio button  labeled "English" will be turned on.
  1769.  
  1770. 2.11.6.8. Submitting the form
  1771.  
  1772. Your form is almost complete. All you need to do is create a
  1773. button that causes the browser to submit the form. 
  1774.  
  1775.   *  Next to the INPUT element for the reset button, insert
  1776. another INPUT element.
  1777.  
  1778.   *   Choose Edit SGML Attributes... from the Markup menu, or
  1779. type Ctrl-]  at the keyboard.
  1780.  
  1781.   *  Set the following attribute values: 
  1782.  
  1783. TYPE: SUBMIT
  1784.  
  1785. VALUE: "Submit order"
  1786.  
  1787. To see what this looks like in the browser:
  1788.  
  1789.   *  Save the file.
  1790.  
  1791.   *  Choose Preview from the File menu, or type  Ctrl-M  at
  1792. the keyboard.
  1793.  
  1794.   *  Enter some data in the form. (Don't enter a real credit
  1795. card number!)
  1796.  
  1797.   *  Click on the Submit order button in the form.
  1798.  
  1799.  
  1800.  
  1801. The form will now be submitted to a program on SoftQuad's web
  1802. server. This program doesn't actually process an order, it just
  1803. echoes back the information that the browser sent it. This information
  1804. will appear in the browser window: you can return to the form
  1805. by clicking on the button that takes you to the previous document.
  1806.  
  1807.  
  1808. The information is presented in pairs containing a "name" (corresponding
  1809. to the NAME attribute of the text box, check box, etc.) and
  1810. a "value" (for text boxes or "text areas", this will be the
  1811. data you typed in; for check boxes the value "on" is submitted--check
  1812. boxes that aren't turned on are ignored; for radio buttons the
  1813. value of the VALUE attribute is sent). 
  1814.  
  1815. You may notice a couple of unusual things about the format of
  1816. the text: spaces are replaced by a `+' sign, and some special
  1817. characters (notably newline, `=', and `&') are replaced by `%nn',
  1818. where the n's are digits from 0-9 and/or letters between `A'
  1819. and `F'. This is the standard form that browsers use for submitting
  1820. data to the server.
  1821.  
  1822. 2.12. HTML quick reference
  1823.  
  1824. The authoritative source of information on the structure of
  1825. HTML documents is the document HyperText Markup Language (HTML)
  1826. Version 2.0. This section provides a short summary of this material.
  1827. The rules governing the HTML format are quite flexible, and
  1828. furthermore HoTMetaL will guide you through the document structure:
  1829. therefore, the approach followed here will not be to enumerate
  1830. all the possible combinations of elements. Rather, an overview
  1831. of the structure will be presented, together with a discussion
  1832. of the different groups of elements (emphasis, links, lists,
  1833. etc.). 
  1834.  
  1835. 2.12.1. Overview
  1836.  
  1837.   +  An element called HTML surrounds the whole document.
  1838.  
  1839.   +  This element contains two sub-elements, HEAD and BODY.
  1840. These elements are required.
  1841.  
  1842.   +  HEAD has sub-elements that define header material:
  1843.  
  1844.   -  TITLE: document title. This element is required.
  1845.  
  1846.   -  BASE: can be used to record the document's URL. The URL
  1847. recorded here may be used to resolve a "partial URL", or used
  1848. if the document is accessed "out of context".
  1849.  
  1850.   -  ISINDEX: indicates to the browser that the document is
  1851. an index document. This is used only if the document is on a
  1852. server that does indexing.
  1853.  
  1854.   -  LINK: indicates a relationship between this document and
  1855. some other object. 
  1856.  
  1857.   -  META: gives information that appears in HTTP headers.
  1858.  
  1859.   -  NEXTID: used to generate a unique identifier.
  1860.  
  1861.   +  Inside the BODY element, heading elements (H1 through H6)
  1862. can be used to delimit major divisions of the document (headings
  1863. are not mandatory, however). Headings are permitted to appear
  1864. in any order, but you will obtain the best results when your
  1865. documents are displayed in a browser if you follow these guidelines:
  1866.  
  1867.  
  1868.   -  H1 should be used as the highest level of heading, H2 as
  1869. the next highest, and so forth.
  1870.  
  1871.   -  You should not skip heading levels: e.g., an H3 should
  1872. not appear after an H1, unless there is an H2 between them.
  1873.  
  1874. 2.12.2. Block formatting
  1875.  
  1876.   +  The major divisions of a document body's structure comprise
  1877. the following elements: 
  1878.  
  1879.   -  ADDRESS: if you want to include the address of the author
  1880. of the document, enter it inside this element.
  1881.  
  1882.   -    BLOCKQUOTE: used for quotes from another source, requiring
  1883. special block-style formatting.
  1884.  
  1885.   -  CODE: code samples.
  1886.  
  1887.   -   P: paragraphs. 
  1888.  
  1889.   -  PRE: pre-formatted text. You would use this text when you
  1890. want the browser to use the same line breaks and spacing that
  1891. you entered in the document. The text will be formatted by a
  1892. browser using a fixed-width typewriter font.
  1893.  
  1894.   -  DL, DIR, MENU, OL, UL: list elements (see Lists, below).
  1895.  
  1896. 2.12.3. Character formatting
  1897.  
  1898. The following elements are used primarily for formatting inline
  1899. text:
  1900.  
  1901.   +  B: bold.
  1902.  
  1903.   +  I: italic.
  1904.  
  1905.   +  EM: browsers usually represent this element in italic.
  1906.  
  1907.   +  STRONG: browsers usually represent this element in bold.
  1908.  
  1909.   +  TT: characters inside this element are formatted with a
  1910. fixed-width typewriter font such as Courier.
  1911.  
  1912.   +   SAMP: literal characters.
  1913.  
  1914. 2.12.3.1. Line breaks
  1915.  
  1916. If you want to force a browser to break the current line in
  1917. the text, insert a BR element. You can't type inside this element:
  1918. it just causes a line break.
  1919.  
  1920. 2.12.3.2. Horizontal lines
  1921.  
  1922. To cause the browser to print a horizontal line (rule) in your
  1923. document, insert an HR element. HoTMetaL will display a line
  1924. in your document, but individual browsers may print lines of
  1925. different widths and lengths.
  1926.  
  1927. 2.12.4. List elements
  1928.  
  1929. HTML supplies five list elements. With the exception of DL,
  1930. list elements are composed of one or more LI (list item) elements.
  1931.  
  1932.  
  1933. You can nest lists by inserting a UL, OL, etc., inside a list
  1934. item (LI). 
  1935.  
  1936.   +  OL: ordered list. Items in this list are numbered automatically
  1937. by the browser. The numbering will reflect nesting levels.
  1938.  
  1939.   +  UL: unordered list. Items in this list are prefaced by
  1940. a list mark such as a bullet. Browsers will usually vary the
  1941. list mark to take account of nesting.
  1942.  
  1943.   +  DIR: directory list. This is an unordered list. Each LI
  1944. element in this kind of list should no longer than 24 characters.
  1945.  
  1946.   +  MENU: menu list. This is an unordered list. Each LI element
  1947. in this kind of list should be no longer than one line.
  1948.  
  1949.   +  DL: list of definitions. This is an unordered list. This
  1950. kind of list is different from the others. Each "item" in this
  1951. kind of  list consists of one or more terms (DT elements), followed
  1952. by a definition (DD element).
  1953.  
  1954. 2.12.5. Link elements
  1955.  
  1956. It is normal for HTML documents to contain links to other documents,
  1957. which can be located anywhere on the WWW. These links are provided
  1958. by Universal Resource Locators (URLs), which are identifiers
  1959. that name the location and filename of a document, and the protocol
  1960. used to access it. 
  1961.  
  1962. The following elements represent links to other documents:
  1963.  
  1964.   +   A: anchor. The HREF attribute of this element represents
  1965. a URL. If this attribute has a value, the content of the element
  1966. will be highlighted when the document is displayed in a browser
  1967. window, and clicking on this content will cause the browser
  1968. to attempt to open the file specified by the URL.
  1969.  
  1970.   +  IMG: image. This element represents a graphic image. It
  1971. is typically used for inline images--you should be aware that
  1972. some browsers may not be able to display such images. (In this
  1973. case, the text, if there is any, given in the ALT attribute
  1974. may be shown.) The SRC attribute represents a URL. See the sections
  1975. on the Show Image and Show Inline Image commands in the View
  1976. menu for information on displaying images in HoTMetaL.
  1977.  
  1978. HoTMetaL has three commands for working with URLs: 
  1979.  
  1980.   +  Edit SGML Attributes... in the Markup menu provides a mechanism
  1981. for editing the URL (if there is one) in the current element.
  1982. See the tutorial section for an example of using this command.
  1983.  
  1984.   +  Publish... in the File menu is used if you want to change
  1985. the URLs in the document from identifiers that refer to files
  1986. on your local system to identifiers that refer to publicly-available
  1987. files on one or more WWW servers.
  1988.  
  1989.   +  Show Link and Context View in the View menu is used to
  1990. display the URL (if there is one) in the current element.
  1991.  
  1992. 2.12.5.1. Links within the same document
  1993.  
  1994. This topic is covered in an extended example in the tutorial
  1995. section.
  1996.  
  1997. In general, you can set up a "source" and "destination" anchor
  1998. pair by setting the NAME attribute of the destination anchor
  1999. to `string' and setting the HREF attribute (i.e., the URL) of
  2000. the source anchor to `#string'. This sets up a one-way link.
  2001. You can set up a two-way link by editing the two anchors so
  2002. that each one's NAME attribute corresponds to the other's URL.
  2003.  
  2004. 2.12.5.2. `Hot images'
  2005.  
  2006. A `hot image' is used like an anchor--when you click on the
  2007. image, the browser retrieves a document. 
  2008.  
  2009. This is very easy to accomplish: you just need to insert an
  2010. IMG element inside an A element. Each element will have a URL:
  2011. the IMG's URL locates the image, and the A's URL locates the
  2012. file that is retrieved when you click on the image.
  2013.  
  2014. 2.12.5.3. Images with hot spots
  2015.  
  2016. Sometimes you will see images that have several "hot spots"
  2017. that you can click on and cause different documents to be retrieved.
  2018. This is accomplished by means of a clickable image map, a file
  2019. that tells the browser where the hot spots are. To prepare such
  2020. a file, you'll need other tools besides HoTMetaL, and so we
  2021. won't discuss the procedure here. Rather, you should retrieve
  2022. the document "Overview on using Clickable Image Maps " by opening
  2023. the file faq.htm, located in the HoTMetaL installation folder,
  2024. with a browser and clicking on the appropriate anchor.
  2025.  
  2026. 2.12.6. Forms
  2027.  
  2028. The following elements are used to construct forms that the
  2029. user can fill in and submit (e.g., via e-mail). When your document
  2030. is browsed, the browser will generate the appropriate graphical
  2031. widgets.
  2032.  
  2033.   +  FORM: the top-level element for a form.
  2034.  
  2035.   +  INPUT: generates a text field, button, radio button, or
  2036. check box.
  2037.  
  2038.   +  SELECT: represents a group of choices that a user can make.
  2039. Generates a pop-up menu or scrollable list.
  2040.  
  2041.   +  OPTION: one choice in a SELECT group.
  2042.  
  2043.   +  TEXTAREA: generates a field that allows the user to enter
  2044. several lines of text.
  2045.  
  2046.  
  2047.  
  2048. For more information on forms, see the tutorial on forms in
  2049. this chapter. You can also retrieve the document "Information
  2050. on setting up form functionality" by opening the file faq.htm,
  2051. located in the HoTMetaL installation folder, with a browser
  2052. and clicking on the appropriate anchor. To see an example of
  2053. a form, use Open Template... to open the template custreg.htm.
  2054.  
  2055. 2.12.7. Other elements
  2056.  
  2057. The elements in this section do not fit into the categories
  2058. described above.
  2059.  
  2060.   +  CITE: represents a document citation. 
  2061.  
  2062.   +  KBD: used to display text that a user would enter at the
  2063. keyboard. (This would be used in technical manuals, for example:
  2064. it is not similar to an element such as INPUT, used in forms.)
  2065.  
  2066.   +  VAR: represents a variable name.
  2067.  
  2068. 2.12.8. Obsolete elements
  2069.  
  2070. The elements PLAINTEXT, XMP, and LISTING are obsolete and are
  2071. supported in this release of HoTMetaL only for compatibility
  2072. with older documents. Using these elements in new content is
  2073. not recommended. XMP and LISTING should be replaced by PRE.
  2074.  
  2075.  
  2076. The obsolete elements COMMENT and HP are not supported. 
  2077.  
  2078. 2.12.9. Proposed elements
  2079.  
  2080. The proposed elements DFN, STRIKE, and U are not supported by
  2081. HoTMetaL.
  2082.  
  2083. 2.13. If you see something you like...
  2084.  
  2085. If you see a web page that contains a typographical effect,
  2086. form, etc., that you like, then the easiest way of achieving
  2087. the same thing yourself is to save the file with the browser
  2088. (make sure you save it in HTML format) and then open it with
  2089. HoTMetaL. 
  2090.  
  2091. 2.14. For further information...
  2092.  
  2093. The file faq.htm in the HoTMetaL installation folder contains
  2094. titles and URLs for documents that contain information on HTML
  2095. usage. Open this file with a browser and retrieve the documents
  2096. that you're interested in.
  2097.  
  2098. A number of HTML tutorials, of varying quality, are usually
  2099. available on the web. The relevant Usenet newsgroups (those
  2100. in the comp.infosystems.www hierarchy) are also a source of
  2101. information. 
  2102.  
  2103. 2.15. The structure of HTML documents
  2104.  
  2105. HoTMetaL will guide you through the structure of an HTML document,
  2106. but here is a short description of the format.
  2107.  
  2108.   +  An element called HTML surrounds the  whole document.
  2109.  
  2110.   +  This element contains two sub-elements, HEAD and BODY.
  2111.  
  2112.   +  HEAD has sub-elements that define header material, such
  2113. as TITLE (document title) and META (gives information that appears
  2114. in HTTP headers). Each of these elements is optional.
  2115.  
  2116.   +  BODY consists of a  PROLOGUE, six levels of "division"
  2117. elements (DIV1-DIV6), followed by an EPILOGUE element. All of
  2118. these elements are optional. 
  2119.  
  2120.   +  The division elements are arranged as follows: zero or
  2121. more DIV6 elements, followed by zero or more DIV5 elements,
  2122. and so forth, ending with zero or more DIV1 elements.
  2123.  
  2124.   +  DIV6 is the "lowest" of the division levels in that it
  2125. cannot contain instances of any of the other division elements.
  2126. DIV1 is the highest level--it can contain any of the other division
  2127. elements. In general, a  division element can contain any division
  2128. element at a lower level than itself.
  2129.  
  2130.   +  Division elements start with a header element (H1 for 
  2131. DIV1 elements, H2 for DIV2 elements, and so forth.
  2132.  
  2133.   +  Division elements, as well as the EPILOGUE and PROLOGUE,
  2134. can contain paragraphs (P), lists (OL, DL, UL), horizontal rules,
  2135. and addresses.
  2136.  
  2137.   +  Paragraphs can contain annotations, links, quotes, citations,
  2138. emphasis, examples, etc.
  2139.  
  2140.   +  Lists consist of list items (LI), which can contain paragraphs,
  2141. lists,  horizontal rules, and addresses.
  2142.  
  2143. 2.15.1. Rules files
  2144.  
  2145. The rules that determine how elements can be arranged in an
  2146. SGML file are described by a set of declarations collectively
  2147. known as a document type declaration, or DTD.  HTML files are
  2148. no exception to this. HoTMetaL reads a DTD in a special, binary
  2149. form called a rules files which contains the same information
  2150. as the DTD but in a different format, one which is more efficient
  2151. for HoTMetaL to read. It is not necessary for you to know more
  2152. details about DTDs and rules files. You just need to be aware
  2153. that  HoTMetaL uses a rules file called html.mtl: this file
  2154. is located in a directory called rules in the HoTMetaL directory.
  2155.  
  2156.  
  2157. If you are interested in seeing the DTD for HTML files, look
  2158. at the file html.mtl in the dtds directory underneath the HoTMetaL
  2159. directory.
  2160.  
  2161. 2.16. Commands for inserting markup
  2162.  
  2163. The most common operations you will carry out in order to add
  2164. or change markup are:
  2165.  
  2166.   +  The Insert Element... command in the Markup menu inserts
  2167. a new, empty element in which you can type text or insert other
  2168. elements.
  2169.  
  2170.   +  The Surround... command in the Markup menu lets you surround
  2171. a selection with an element: if some part of the document should
  2172. be contained in a particular element, then you can highlight
  2173. that portion and select this command in order to choose an element
  2174. to surround it with.
  2175.  
  2176.   +  The Change... command in the Markup menu lets you change
  2177. the markup: if you want to tag part of the document with a different
  2178. element you can select this command to get a list of valid elements
  2179. to replace the current element.
  2180.  
  2181.  
  2182.  
  2183. 2.17. Screen formatting
  2184.  
  2185. HoTMetaL provides screen-formatting capabilities that facilitate
  2186. the document creation process by allowing you to assign distinctive
  2187. styles to the elements in your document. The purpose of these
  2188. formatting features is only to improve the appearance of the
  2189. document during the editing process. The formatting that you
  2190. set with HoTMetaL does not affect how browsers such as Mosaic
  2191. format the document. 
  2192.  
  2193. Because HTML files are structured documents, setting a style
  2194. for an element means setting it for all elements of the same
  2195. type. 
  2196.  
  2197. The following kinds of typographical properties can be set:
  2198.  
  2199.  
  2200.   +  Character-based properties: font family, font size, font
  2201. style, line height, justification, fill mode, and format type.
  2202. All of these properties are set using the Character... command.
  2203. (Font style allows you to adjust the font by making it bold,
  2204. superscript, etc.; the fill mode determines how carriage returns
  2205. are treated--in fill mode, they are treated like spaces, but
  2206. in no fill mode they cause a line break; format type lets you
  2207. choose whether an element appears inline or starts on a new
  2208. line.)
  2209.  
  2210.   +  Separation: using the Separation... command, you can set
  2211. off elements by adding space on top and on bottom. This command
  2212. also lets you cause an element to be formatted as if it started
  2213. with a tab.
  2214.  
  2215. 2.17.1. Styles
  2216.  
  2217.  HoTMetaL stores its formatting information in files called
  2218. styles files: these contain the formatting information set with
  2219. the Character... and Separation... commands.
  2220.  
  2221. HoTMetaL maintains two kinds of styles files. There is one default
  2222. styles file, which is used whenever a file is created or opened
  2223. with HoTMetaL. This is a binary file called html.stl.  When
  2224. an HoTMetaL file is created or opened, HoTMetaL looks for this
  2225. styles file in the styles path,  that is, the set of directories
  2226. named by the styles_path configuration variable. If it finds
  2227. the styles file, then the formatting information contained in
  2228. that file is used for the current HoTMetaL file. If the styles
  2229. file is not found, then a new styles file, containing the default
  2230. formatting information, is created in the first directory  in
  2231. the styles path. Whenever the current HoTMetaL document is saved,
  2232. this styles file is updated with whatever formatting parameters
  2233. are in effect for the document.
  2234.  
  2235. HoTMetaL also uses styles files in text format. These styles
  2236. file are loaded using the Load Styles... command. You can switch
  2237. styles in the middle of a HoTMetaL session by choosing a new
  2238. text styles file with this command. The formatting information
  2239. from a text styles file will not be written to the default (binary)
  2240. style unless the current file is saved. Text styles files are
  2241. created using the Save Styles... command. You can maintain as
  2242. many text styles files as you wish.  
  2243.  
  2244. 2.17.2. Displaying images
  2245.  
  2246. The Show Image command in the View menu lets you launch an external
  2247. application (which you can choose by means of a configuration
  2248. variable) to display a graphical image. By default, GIF images
  2249. are displayed inline (in the HoTMetaL document window). See
  2250. the  Show/Hide Inline Images command in the View menu for more
  2251. information
  2252.  
  2253. 2.17.3. Previewing the document
  2254.  
  2255. In order to preview the current document, you can invoke a browser
  2256. of your choice from within HoTMetaL. To do this, just invoke
  2257. the Preview command in the File menu. In order for this to work,
  2258. you must specify a browser in the HoTMetaL preferences file.
  2259. See the section on this command for more information. 
  2260.  
  2261. 2.17.4. Displaying icons
  2262.  
  2263. Using the Show/Hide Tags command in the View menu, you can cause
  2264. the special character icons and the tag icons that represent
  2265. elements to be visible or invisible. 
  2266.  
  2267. 2.17.5. Displaying a document outline
  2268.  
  2269. The command Show Structure View in the View menu displays a
  2270. nested outline view of the document. You can cut, copy, paste,
  2271. and navigate in this outline. For more information, see this
  2272. command's documentation in the chapter The View menu.
  2273.  
  2274. 2.17.6. Newlines
  2275.  
  2276. Although pressing the Return or   Enter key will put a "newline"
  2277. into the file, Mosaic and other browsers follow the SGML whitespace
  2278. rules, and therefore will ignore new line characters in some
  2279. circumstances.
  2280.  
  2281. 2.18. Attributes
  2282.  
  2283. Elements can have content (text and sub-elements contained in
  2284. the element) and attributes. An attribute is a piece of information
  2285. about the element which does not appear in the content of the
  2286. element. Some common uses for attributes are: to represent a
  2287. link (URL); naming an image file; choosing different types of
  2288. graphical controls for an on-line form.
  2289.  
  2290. 2.18.1. Viewing attribute values
  2291.  
  2292. There are a number of ways of telling whether or not an element
  2293. has attributes, and of seeing what the attribute values are.
  2294.  
  2295.  
  2296.   +  If the current element has one or more attributes, then
  2297. the Edit SGML Attributes... command in the Markup menu is activated
  2298. (whether or not the attributes have been given values). If you
  2299. invoke this command,  you can see what the attribute values
  2300. are and also edit the values. 
  2301.  
  2302.   +  The context view, which is displayed by invoking the Show
  2303. Link and Context View command in the View menu, displays the
  2304. sequence of elements that contain the current element. It also
  2305. displays the attribute values for any elements in the sequence
  2306. that have attributes. 
  2307.  
  2308.   +  The styles file supplied with HoTMetaL allows you to display
  2309. attribute values inline, as prefixes displayed just to the right
  2310. of the start-tag icon.
  2311.  
  2312. 2.18.2. Editing attributes
  2313.  
  2314. Attribute values may be inserted or changed using the Edit SGML
  2315. Attributes... command in the Markup menu. When you invoke this
  2316. command, you will get a dialog box that contains a line for
  2317. each attribute of the current element. Each line contains the
  2318. attribute name followed by either a text box or a drop-down
  2319. list box,  depending on what kind of value the rules file says
  2320. the attribute must have. The attribute value may be text (which
  2321. could be subject to restrictions such as the length of the text
  2322. or first character in the text), or a selection from a list
  2323. of values. 
  2324.  
  2325. 2.19. Netscape support
  2326.  
  2327. We have included a rules file that allows you to use the extended
  2328. features (as best as we can determine them) supported by the
  2329. Netscape browser. You must modify the configuration file to
  2330. name the alternate rules file if you want to use these features.
  2331.  
  2332.   *  Edit the configuration file, and locate the line assigning
  2333. a value to the rules_file variable.
  2334.  
  2335.   *  Put a `#' character at the beginning of this line. This
  2336. "comments it out" so that HoTMetaL will ignore it.
  2337.  
  2338.   *  Now insert the line:
  2339.  
  2340. rules_file=html-net.mtl
  2341.  
  2342.  
  2343.   *  Save the file and restart HoTMetaL.
  2344.  
  2345. If you want to restore the previous rules, "comment out" the
  2346. line you just inserted and remove the `#' from the original
  2347. line.
  2348.  
  2349. You should be aware that the Netscape extensions to HTML are
  2350. not part of the HTML 2.0 specification. Web users viewing documents
  2351. made with this alternate rules file will not notice the effects
  2352. of the extensions when they view the file with a browser other
  2353. than Netscape (e.g., text in the BLINK element will not blink,
  2354. an IMG element with the attribute ALIGN=RIGHT will not align
  2355. the image to the right, etc.)
  2356.  
  2357. For HTML markup that conforms to the HTML 2.0 specification,
  2358. you should continue to use the default rules file (html.mtl).
  2359. HTML markup created with this rules file can still be used with
  2360. Netscape (but will not take advantage of the extended features).
  2361.  
  2362. 3. The File menu
  2363.  
  2364. The File menu contains commands for creating, opening, closing,
  2365. and saving files edited with HoTMetaL, previewing the current
  2366. document with a browser, and modifying URLs.
  2367.  
  2368. 3.1. New
  2369.  
  2370. When you invoke this command a new, empty HoTMetaL document
  2371. is displayed ina  document window. 
  2372.  
  2373. 3.2. Open...
  2374.  
  2375. Opens a previously saved file. 
  2376.  
  2377. HoTMetaL presents you with a dialog box allowing you to open
  2378. a file. The dialog box is called a file selection dialog;  a
  2379. similar dialog box appears when you select the Save As... command.
  2380. The structure and function of the file selection  dialog box
  2381. for the Open... command is explained here. 
  2382.  
  2383. The dialog box has several parts:
  2384.  
  2385.   +  A drop-down list box labeled List Files of Type. This list
  2386. box lets you choose whether to display files with the default
  2387. file extension  (.htm) or display all files in the current directory.
  2388.  
  2389.  
  2390.   +  a text box labeled File Name
  2391.  
  2392. This text box can contain a relative or absolute path name,
  2393. which terminates in a file name or directory name, and can optionally
  2394. start with a drive name. A file name (which may contain an extension)
  2395. can contain the following "wildcard" (special) characters: 
  2396.  
  2397.   +  * (asterisk): matches any sequence of characters in a file
  2398. name
  2399.  
  2400.   +  ? (question mark): matches any single character in a file
  2401. name
  2402.  
  2403.  Such a pattern containing wildcard characters is used to filter
  2404. the file names displayed in the list box directly below. You
  2405. can type a pattern in the box directly or choose it from the
  2406. List Files of Type list. 
  2407.  
  2408. If the File Name box contains a path name that ends in a file
  2409. name without wildcard characters, clicking on OK will cause
  2410. that file to be opened.
  2411.  
  2412.   +  an information field labeled Directories 
  2413.  
  2414. The current directory (including the drive name) appears underneath
  2415. the label. The default directory is the one specified first
  2416. by the import_path configuration variable. 
  2417.  
  2418.   +  a list box underneath the File Name text box 
  2419.  
  2420. This list contains the files in the current directory that match
  2421. the pattern in the File Name box. The list of files is updated
  2422. whenever a new directory is chosen, and when you click on the
  2423. OK button.
  2424.  
  2425.  
  2426.  
  2427. Clicking once on a file in this list causes the name to go in
  2428. the File Name box. Double-clicking causes the file to be opened.
  2429. This has the same effect as clicking once on the file name and
  2430. then clicking on the OK button.
  2431.  
  2432.   +  a list box, on the right side of the dialog, underneath
  2433. the Directories information field
  2434.  
  2435. This box allows you to navigate in the directory structure of
  2436. a drive by double-clicking on the directories shown in the list.
  2437. The top level "directory" displayed is the current drive; if
  2438. you double-click on this directory, its subdirectories are displayed,
  2439. slightly indented to indicate the nesting relationship. If you
  2440. click on one of these directories, its subdirectories will be
  2441. displayed, and so forth. At any particular time the list will
  2442. display the sequence of directories that you have navigated
  2443. along, ending with the subdirectories of the last directory
  2444. you selected. 
  2445.  
  2446.   +  A drop-down list box labeled Drives. This allows you to
  2447. choose which drive to navigate.
  2448.  
  2449. By pressing Tab or Shift-Tab you can make the File Name box,
  2450. the list of directories, the list of files, or either of the
  2451. buttons the active item in the dialog box. When either of the
  2452. lists is active, you can select a list item by pressing repeatedly
  2453. on the first letter of the item until it is selected. When the
  2454. File Name box is active, you can enter text in it. 
  2455.  
  2456. In summary: you may select a directory from which a file may
  2457. be opened by using the list of directories, or by typing the
  2458. path name in the File Name text box. You may choose a file by
  2459. doing one of the following: 
  2460.  
  2461.   +   double-clicking in the list of files
  2462.  
  2463.   +  selecting a file in the list of files and then clicking
  2464. on OK 
  2465.  
  2466.   +  entering the file name in the File Name text box and clicking
  2467. on OK
  2468.  
  2469. Note:  In this dialog box, the default directory is the one
  2470. specified first with the `import_path' configuration variable.
  2471.  
  2472. 3.2.1. Error checking
  2473.  
  2474. As the file is being opened, HoTMetaL checks for fatal SGML
  2475. errors. Fatal errors include start-tags without matching end-tags,
  2476. invalid element names, and many other SGML errors. In such cases,
  2477. HoTMetaL displays a message describing the problem. It then
  2478. gives you the following choices: 
  2479.  
  2480.   1.  Import Through Filter, which allows you to run the file
  2481. through a filter that may correct the errors. If you choose
  2482. this option you will get a dialog box in which to give the name
  2483. of an output file. Enter the output filename (including drive
  2484. and directory) in the Output File text box, or click on the
  2485. Choose File... button to get a file selection dialog box with
  2486. which to choose a file. HoTMetaL will then invoke the filter:
  2487. when the filter has finished, HoTMetaL attempts to open the
  2488. output file.
  2489.  
  2490.   2. Open the file as a text file so that you can correct the
  2491. errors manually. When you've done this, you can run the Interpret
  2492. Document command, which performs the equivalent of Open... on
  2493. the text document.
  2494.  
  2495.   3. Cancel the operation and correct the error(s) through other
  2496. means.
  2497.  
  2498. If no errors are found, the file is formatted, and checked once
  2499. more for errors as if the Turn Rules Checking On command in
  2500. the Special menu had been selected for the new file. At this
  2501. stage, non-fatal errors may be detected. Examples of these are
  2502. incorrectly placed elements, and text at a point where no text
  2503. is permitted. Errors of this kind do not prevent the file from
  2504. being opened.
  2505.  
  2506. Finally the file is validated: this stage of error checking
  2507. ensures that the HTML markup is correct and complete. The following
  2508. example illustrates the difference between rules checking and
  2509. validation: if you open a file that has an HTML element that
  2510. does not contain a HEAD element, rules checking will not complain,
  2511. because you have not yet violated the rules file. Validation,
  2512. however, will alert you to the fact that the required HEAD element
  2513. is missing.
  2514.  
  2515. Note:  There will sometimes be a document type declaration (DOCTYPE)
  2516. at the top of an HTML file, specifying which DTD to use. This
  2517. declaration is ignored with files being opened with HoTMetaL,
  2518. because all HTML files use the HTML DTD.  
  2519.  
  2520. 3.3. Open Template...
  2521.  
  2522. This command allows you to work with templates, which are pre-defined
  2523. structures for documents. Templates are used as forms or document
  2524. outlines that you can enter text into without having to insert
  2525. any of the markup yourself.
  2526.  
  2527. 3.3.1. Opening a template
  2528.  
  2529. To open a template, click on the Open Template... command. This
  2530. brings up a  file selection dialog box labeled Open Template.
  2531. If you have a templates directory (see below) the dialog box
  2532. will display the files from that directory Each file corresponds
  2533. to a template: to open a template, just open it from this dialog
  2534. box as you would any other file. The document name in the title
  2535. bar will be the same as the template name, but with a number
  2536. added to the first part of the filename: for example, the first
  2537. time you open a template called fax.htm, the new document will
  2538. be called fax1.htm,  the second time the document will be calledfax2.htm,
  2539. and so forth.
  2540.  
  2541. When the template file is opened you can enter text or elements
  2542. into it, and later save the file. When you save the file, you
  2543. will have use the Save As... command and choose a new file name--the
  2544. name in the title bar is not automatically adopted. If you save
  2545. this file in the templatesdirectory make sure you do not overwrite
  2546. the original template file by mistake.
  2547.  
  2548. 3.3.2. Creating your own templates
  2549.  
  2550. A number of templates are shipped with HoTMetaL, but it is expected
  2551. that you will normally be working with templates that were created
  2552. at your own site.
  2553.  
  2554. 3.3.2.1. Templates directory
  2555.  
  2556. In order for you to work with templates successfully, a directory
  2557. must be designated as the templates directory. This is a central
  2558. location containing all of your template files, and it is the
  2559. directory whose files are displayed when the Open Templates...
  2560. dialog box comes up. By default, this is the  directory called
  2561. tmplts in the directory where HoTMetaL is installed.
  2562.  
  2563. If you want to use another directory for this purpose, you will
  2564. have to name that directory using the templates_path configuration
  2565. variable. For example:
  2566.  
  2567. templates_path=c:\susan\tmplts
  2568.  
  2569. If the default templates directory does not exist (perhaps someone
  2570. has removed it), and no alternativedirectory is specified with
  2571. the templates_path variable, the current directory will be used
  2572. as the templatesdirectory.
  2573.  
  2574. 3.3.2.2. Creating templates
  2575.  
  2576. To create a template file with HoTMetaL, you should do the following:
  2577.  
  2578.   *  Create a document as you normally would.
  2579.  
  2580.   *  Invoke the Save As... command in the File menu.
  2581.  
  2582.   *  Choose a directory and filename. You can save the file
  2583. directly in the templates directory or move it there later.
  2584.  
  2585.   *  Click on the Save As button.
  2586.  
  2587.  
  2588.  
  2589. 3.3.2.3. Installing a template
  2590.  
  2591. When the template file has been created, it should be saved
  2592. in the templatesdirectory (or you can save it elsewhere and
  2593. move it later) so that it will be easily accessible from the
  2594. Open Template dialog box.
  2595.  
  2596. 3.4. Save 
  2597.  
  2598. This command saves the current file (that is, the file that
  2599. is opened in the  active document window) to the disk. 
  2600.  
  2601. HoTMetaL saves the document in the file name shown in the title
  2602. bar at the top of the window. 
  2603.  
  2604. 3.4.1. Save options
  2605.  
  2606. There are several save options that you may set if you need
  2607. to do so. All of these options are set using configuration variables:
  2608.  
  2609.   +  
  2610.  
  2611. You may choose to save a document type declaration (DOCTYPE),
  2612. at the top of the file. The default may be set by setting the
  2613. export_doc_type_dec configuration variable to YES or NO:
  2614.  
  2615. export_doc_type_dec=YES
  2616.  
  2617.   +  
  2618.  
  2619. You may choose to save an SGML declaration  at the top of the
  2620. file. The default may be set by setting the export_sgml_dec
  2621. configuration variable to YES or NO.
  2622.  
  2623. Note: Normally you should use this feature only if your file
  2624. will be used by some other SGML system. Some browsers may not
  2625. be able to read an SGML declaration, or may display (unwanted)
  2626. information from the declaration on the screen.
  2627.  
  2628.   +  
  2629.  
  2630. If your file contains special characters (those outside the
  2631. ASCII range 0-127), you may choose to have these converted to
  2632. SGML character references when the file is saved. This situation
  2633. arises only if your file was edited with another editor. Special
  2634. characters that are entered in the document when it is being
  2635. edited with HoTMetaL will be converted immediately to character
  2636. entity icons. Character references are represented in a HoTMetaL
  2637. document as a small, rectangular icon, similar to a character
  2638. entity icon, labelled `#nnn', where the n's are numbers. For
  2639. example: #200. Browsers should display a character reference
  2640. as the character itself. The default setting for this option
  2641. (YES or NO) may be set with the export_convert_special_chars
  2642. configuration variable.
  2643.  
  2644.   +  
  2645.  
  2646. You can choose the character(s) that HoTMetaL uses to mark the
  2647. end of a line in the saved file. You may choose one of the values
  2648. MAC, UNIX, and MSDOS, which will cause the end-of-line character
  2649. to be carriage return, line feed, or carriage return and line
  2650. feed, respectively The default end-of-line marker can be set
  2651. with the export_eol configuration variable. If you don't provide
  2652. a value for this variable, the default will be   MSDOS.
  2653.  
  2654.   +  
  2655.  
  2656. For elements that are formatted in fill mode (see the documentation
  2657. on the Characters... menu item) you can set the length of lines
  2658. in the saved file by telling HoTMetaL to insert end-of-line
  2659. characters after a specified number of characters. This option
  2660. can be turned on or off by default by setting the export_add_line_breaks
  2661. configuration variable to YES or NO.The number of characters
  2662. in a line can be set with the export_max_line_len configuration
  2663. variable, e.g.,
  2664.  
  2665. export_max_line_len=75
  2666.  
  2667.  HoTMetaL will not cause a line break in the saved file to occur
  2668. between an element and adjoining text.
  2669.  
  2670.  If you have rules checking turned on, the file will be validated,
  2671. and you will be warned if there are errors and asked if you
  2672. still want to save. If you do, the file will be invalid and
  2673. HoTMetaL may have trouble opening it in the future. 
  2674.  
  2675. 3.5.  Save As...
  2676.  
  2677. This command lets you choose a new name for the current document.
  2678. When you save a file with this command, HoTMetaL creates a new
  2679. file whose content is the same as the current file, and closes
  2680. the current file, leaving the new file open. 
  2681.  
  2682. The document that was closed will look the same as it did the
  2683. last time it was saved: any changes that were made since the
  2684. last save will be saved in the newly created file.
  2685.  
  2686. HoTMetaL gives you the  file selection dialog box with which
  2687. to specify the name of the new file. 
  2688.  
  2689. You should follow the same instructions for selecting a file
  2690. or directory as were described in the section on the Open...
  2691. command. 
  2692.  
  2693. Note:  In this dialog box, the default directory is the one
  2694. specified first by the `export_path' configuration variable.
  2695.  
  2696.  
  2697. The save options that were specified for Save will also apply
  2698. to the Save As... command. Save As... will validate the file
  2699. if rules checking is turned on, just as Save does.
  2700.  
  2701. 3.6. Close File
  2702.  
  2703. This command closes the current file. If the file has had changes
  2704. made to it since it was last saved, you will be prompted to
  2705. save the changes before closing it. 
  2706.  
  2707. 3.7. Preview
  2708.  
  2709. When you invoke this command it will launch a browser to display
  2710. the file. If the file hasn't been saved since changes were last
  2711. made to it, HoTMetaL will prompt you to save the file. You then
  2712. have the choice of saving the file or proceeding with the previewing
  2713. operation without saving (in which case the document is saved
  2714. to a temporary file automatically). The command line for the
  2715. browser that is launched by this command is specified using
  2716. the html_browser configuration variable. The default value for
  2717. this variable (and therefore the default browser) isc:\mosaic\mosaic.exe.
  2718.  
  2719. Invoking this command does the same as if you had saved the
  2720. file with HoTMetaL, launched the browser independently of HoTMetaL,
  2721. and then opened the file with the browser.
  2722.  
  2723. 3.8. Publish...
  2724.  
  2725. This command is a form of "find and replace" for URLs. Before
  2726. a completed HTML document is moved to a WWW server, all URLs
  2727. should refer to documents that are available on some WWW server.
  2728. (While the document is being created, they may refer to documents
  2729. on your local system.) The Publish... command gives you the
  2730. opportunity to edit all the URLs, modifying them if necessary.
  2731.  
  2732.  
  2733. For example, when you are creating a document the URLs may consist
  2734. of local filenames such as:
  2735.  
  2736. file:///c|/rodney/orwell/homage.htm
  2737.  
  2738. When the document is placed on your server, you must substitute
  2739. URLs that refer to documents that are available on your server
  2740. or some other server. For example:
  2741.  
  2742. http://www.sq.com/orwell/homage.htm
  2743.  
  2744. When you invoke Publish... you will get a dialog box containing
  2745. two text boxes.
  2746.  
  2747.  
  2748.  
  2749.  The first box (labeled Change URLs From) contains a part of
  2750. the URL that you want to change; the second box (labeled To)
  2751. contains the string that you want to change it to. The default
  2752. values in these two boxes are specified by two configuration
  2753. variables: publish_change_from specifies the part of the URL
  2754. that should be changed; publish_change_to specifies the new
  2755. value for this part of the URL. 
  2756.  
  2757. If there were a large number of URLs for which you needed to
  2758. change a local directory such as file:///c|/rodney to a directory
  2759. on the server, such as http://www.sq.com, you could set your
  2760. configuration variables as follows:
  2761.  
  2762. publish_change_from=file:///c|/rodney
  2763. publish_change_to=http://www.sq.com
  2764.  
  2765. This would cause the Change URLs From  text box to contain 
  2766. "file:///c|/rodney"  and the To text box to contain "http://www.sq.com".
  2767.  
  2768.  
  2769. 3.8.1. Finding and Replacing URLs
  2770.  
  2771. When you click on the Find Next button, HoTMetaL finds the next
  2772. element that has an attribute representing a URL (often the
  2773. HREF attribute of the element A and the SRC attribute of the
  2774. element IMG). The search starts at the insertion point (or selection).
  2775.  
  2776. When an element with a URL is found, the insertion point is
  2777. placed inside that element, and the document scrolls to its
  2778. location. 
  2779.  
  2780. If the URL contains the text in the Change URLs From box, clicking
  2781. on the Replace button will change it to the text in the To box.
  2782.  
  2783.  
  2784.  Clicking on the Replace All button will make this change for
  2785. all URLs in the document that contain the Change URLs From text.
  2786. This also causes the dialog box to be dismissed.
  2787.  
  2788. You can edit the Change URLs From and To text if you want to
  2789. perform substitutions other than the default one.
  2790.  
  2791. The searching performed by this command does not wrap around
  2792. from the bottom to the top of the file.
  2793.  
  2794. 3.9. Exit
  2795.  
  2796. Quits HoTMetaL. If an open file has been changed since the last
  2797. time it was saved, you will be prompted to save the file before
  2798. exiting.
  2799.  
  2800. 4. The Edit menu
  2801.  
  2802. The Edit menu contains commands to cut, copy, and paste a selection,
  2803. undo your last action, perform find and replace operations,
  2804. and do spell checking.
  2805.  
  2806. 4.1. Undo
  2807.  
  2808. Allows the effect of the last operation to be undone.
  2809.  
  2810. Most commands can be undone. There are, however, some HoTMetaL
  2811. actions that cannot be undone:
  2812.  
  2813.   +  any command from the File menu, except Publish
  2814.  
  2815.   +  scrolling and windowing commands
  2816.  
  2817.   +  text selection
  2818.  
  2819.   +  Undo itself (it can be undone with Redo)
  2820.  
  2821.   +  Show Structure View, Show Link and Context View 
  2822.  
  2823.   +  Any actions performed prior to the last time the document
  2824. was saved cannot be undone.
  2825.  
  2826. If you imagine a sequence of undo-able commands as a list, successive
  2827. Undo commands will proceed through the list, starting at the
  2828. most recent. Therefore, if you execute two Undo commands in
  2829. a row you will undo the most recent action, and then undo the
  2830. second most recent action. Note that since Undo is not itself
  2831. an undo-able command, one Undo cannot undo another. This function
  2832. is reserved for Redo, which is the inverse of Undo. (See the
  2833. section on Redo.)
  2834.  
  2835. If you undo a Copy or Cut command, the previous contents of
  2836. the clipboard will be restored.
  2837.  
  2838. 4.1.1. Undo limit
  2839.  
  2840. The number of previous commands that can be undone is not limitless
  2841. but rather is controlled by an undo limit. Once this limit is
  2842. reached, each successive command will cause the oldest undoable
  2843. command to be committed, that is, it will no longer be possible
  2844. to undo that command. For example, if the undo limit is set
  2845. to 1 and you Cut a selection and then Paste what you just cut,
  2846. you will be able to undo the paste but not the cut. If the undo
  2847. limit were 2 or greater, both the cut and paste could be undone.
  2848. The default value for the undo limit is 10, but this can be
  2849. changed by setting the undo_limit configuration variable, e.g.:
  2850.  
  2851. undo_limit=20
  2852.  
  2853. 4.2. Redo
  2854.  
  2855. This command allows the most recent undone command to be redone.
  2856.  
  2857. Redo operates in a way similar to Undo: a sequence of Redo commands
  2858. re-does the most recent redo-able commands (i.e., commands that
  2859. have been undone) in reverse order. Redo and Undo are inverses
  2860. of each other: the net effect of an Undo and its corresponding
  2861. Redo is to cause no change to the document.
  2862.  
  2863. If an undoable action is performed after a series of one or
  2864. more Undo commands then the Undo commands will no longer be
  2865. redo-able.
  2866.  
  2867. To illustrate how Redo works, suppose you Cut a selection in
  2868. a document, and then Paste that selection somewhere else. If
  2869. you perform two Undo commands, first the Paste and then the
  2870. Cut will be undone. If you then execute a Redo, the Cut will
  2871. be redone. A second Redo will then redo the Paste.
  2872.  
  2873. 4.3. Cut
  2874.  
  2875. Removes the current selection from the document and places it
  2876. in the clipboard. Any previous contents of the clipboard will
  2877. be erased. The selection can then be pasted.
  2878.  
  2879. This command is used when you want to remove a section of text
  2880. that will probably be pasted in elsewhere, in the same or another
  2881. document.
  2882.  
  2883. 4.4. Copy
  2884.  
  2885. Copies the contents of the current selection into the clipboard
  2886. and erases any previous contents. The document is left unchanged.
  2887.  
  2888. This command is used when you want to duplicate a portion of
  2889. the document without erasing it. The copied selection can be
  2890. inserted elsewhere using the Paste command.
  2891.  
  2892. 4.5. Paste
  2893.  
  2894. Transfers the contents of the clipboard to the document. If
  2895. the document contains an insertion point, the clipboard is pasted
  2896. at that point; if it contains a selection, then the contents
  2897. of the clipboard overwrite the selection.
  2898.  
  2899. The clipboard can contain markup. If the paste would result
  2900. in an incorrectly marked-up document, you may be prompted to
  2901. either cancel the paste operation or continue with rules checking
  2902. turned off. Some paste operations cannot be performed even with
  2903. rules checking turned off. 
  2904.  
  2905. 4.6. Find and Replace...
  2906.  
  2907. Allows text, elements, and patterns to be found and replaced.
  2908.  
  2909. You are presented with a dialog box that allows you to enter
  2910. various values and parameters.
  2911.  
  2912. 4.6.1. Specifying the search and replace strings
  2913.  
  2914. The Find text box  allows you to specify a search string  of
  2915. text characters, elements, character entities, or patterns.
  2916. If the document contains a selection when you invoke Find and
  2917. Replace... the selected text will automatically become the search
  2918. string. If the selected text is longer than 255 characters,
  2919. it will be truncated. If the selection contains a markup icon
  2920. (an element or character entity) it will be truncated at the
  2921. last character before the icon. A selection that starts with
  2922. a markup icon will become a null search string, and therefore
  2923. an existing selection cannot be used to cause an element to
  2924. be the search string.
  2925.  
  2926. The Replace text box allows you to specify a replace string
  2927. consisting of text characters, patterns, an element, or a character
  2928. entity, with which you want to replace the search string.
  2929.  
  2930. The Find In text box allows you to restrict your search to a
  2931. particular element.
  2932.  
  2933. The Find, Replace, and Find In strings are described in more
  2934. detail below.
  2935.  
  2936. 4.6.2. Command buttons
  2937.  
  2938. There are five buttons (including Cancel) along the bottom of
  2939. the Find & Replace dialog box, which allow you to carry out
  2940. several search and replace operations.
  2941.  
  2942. 4.6.2.1. Find
  2943.  
  2944. Find causes HoTMetaL to search through the document for the
  2945. search string according to the various search parameters chosen.
  2946. If you click on Find and the search is successful, HoTMetaL
  2947. selects the text, character entity, or element that was found
  2948. and scrolls to the selection. If the search fails, HoTMetaL
  2949. will beep. Also, a Not found message will be displayed at the
  2950. bottom of the Find & Replace dialog box.
  2951.  
  2952. Text searches will not match if parts of the search string are
  2953. found within different elements. If you are searching for `Fred
  2954. and Barney', but the word `and' is in a separate element (emphasized,
  2955. for example), the search string will not be matched.
  2956.  
  2957. 4.6.2.2. Replace
  2958.  
  2959. Replace replaces the current selection in the document with
  2960. the replace string. This command is enabled only when part of
  2961. the document is selected.
  2962.  
  2963. 4.6.2.3. Replace then Find
  2964.  
  2965. Replace then Find replaces the current selection in the document
  2966. with the replace string, and then resumes the search procedure.
  2967. This command will be enabled only when part of the document
  2968. is selected.
  2969.  
  2970. You would use this option if you wanted to manually examine
  2971. each occurrence of the search string before doing a replacement:
  2972. if you decide to perform the replacement, click on Replace then
  2973. Find again; otherwise, click on Find to go to the next occurrence
  2974. of the search string.
  2975.  
  2976. 4.6.2.4. Replace All
  2977.  
  2978. Replace All replaces all occurrences of the search string with
  2979. the replace string. This command automates the whole find and
  2980. replace process, not giving you the opportunity to choose individual
  2981. cases. It is possible that some of the occurrences of the search
  2982. string that are found cannot be replaced, because this would
  2983. cause an incorrectly marked-up document. If so, these occurrences
  2984. are skipped over. After the operation has been completed, a
  2985. message will be displayed in the Find & Replace dialog box showing
  2986. how many occurrences of the search string were found, and how
  2987. many were replaced. The insertion point will now be at the end
  2988. of the last replacement. Invoking the Undo command after Replace
  2989. All will cause all of the replacements that were actually made
  2990. to be undone.
  2991.  
  2992. 4.6.3. Specifying search patterns 
  2993.  
  2994. When the Find Patterns option is on (see below), the characters
  2995. you type in the Find textbox   are interpreted as patterns by
  2996. HoTMetaL: that is, the search string can contain certain special
  2997. search characters that allow the search string to match a class
  2998. of strings, or markup constructs. If your search string does
  2999. not contain any special search characters, HoTMetaL will search
  3000. for exactly the text you have typed. On the other hand, if the
  3001. search string does contain special search characters, it defines
  3002. a pattern of characters to be matched. For example, the search
  3003. character `.' (period) is used in the pattern 
  3004.  
  3005. m...y
  3006.  
  3007.  to match a sequence of five characters beginning with `m' and
  3008. ending with `y', e.g., the words `money', `marry', `murky',
  3009. etc. A complete description of search characters and expressions
  3010. appears below. 
  3011.  
  3012. The following characters are special search characters in a
  3013. search pattern: 
  3014.  
  3015.  \ . * ? + ^ $ ]
  3016.  
  3017. In addition, the characters `&' and `<' are special when one
  3018. or the other appears as the first character of the pattern.
  3019.  
  3020. If you want to search for any of these as ordinary characters
  3021. when Find Patterns is turned on, it must be preceded by a backslash.
  3022. For example, 
  3023.  
  3024. \.
  3025.  
  3026.  is used to match a period.
  3027.  
  3028. Search patterns are sequences of ordinary characters and special
  3029. characters, combined according to certain rules. 
  3030.  
  3031. The following list summarizes how these search characters are
  3032. interpreted, and how search patterns are formed.
  3033.  
  3034.   +  An ordinary character represents itself.
  3035.  
  3036.   +  A string beginning with a `<', immediately followed by
  3037. an element name (and possibly attributes and content, as discussed
  3038. below), is used to match an element.
  3039.  
  3040.   +  A period or dot, `.', represents a single, arbitrary character
  3041. (including a blank). So 
  3042.  
  3043. fo.d
  3044.  
  3045.  would match `food', `ford', `fond', `fold', etc. Similarly,
  3046.  
  3047.  
  3048. s.o.
  3049.  
  3050.  matches `stop', `shot', `snow', etc.
  3051.  
  3052.   +  A single character, or a string enclosed in parentheses,
  3053. followed by an asterisk, `*', matches zero or more occurrences
  3054. of that character or string. For example, 
  3055.  
  3056. l*ama
  3057.  
  3058.  would match `ama', `lama', `llama', `lllama', etc. 
  3059.  
  3060. b(an)*a
  3061.  
  3062.  would match `ba', `bana', `banana', and so on. It is possible
  3063. to combine the `*' with `.' to match arbitrary strings of characters.
  3064. So 
  3065.  
  3066. s.*ch
  3067.  
  3068.  matches `search', `such', `stretch', `stopwatch', as well as
  3069. `sch' and `skip lunch'. This search pattern represents strings
  3070. that start with `s' followed by zero or more occurrences of
  3071. an arbitrary single character (it doesn't have to be the same
  3072. character over and over) followed by the characters `ch'. Since
  3073. the period can match a blank space, this pattern can match a
  3074. multi-word string.
  3075.  
  3076.   +  A single character, or a string enclosed in parentheses,
  3077. followed by a question mark, `?', matches zero or one occurrences
  3078. of that character or string. For example, to search for instances
  3079. of both `color' and `colour', you would use: 
  3080.  
  3081. colou?r
  3082.  
  3083.   +  
  3084.  
  3085. A single character, or a string enclosed in parentheses, followed
  3086. by a plus sign, `+', matches one or more occurrences of that
  3087. character or string. For example, the following expression matches
  3088. `ben', `been', `beeen', and so forth, but not `bn'.
  3089.  
  3090. be+n
  3091.  
  3092.   +  Search patterns may be enclosed within parentheses for
  3093. grouping. 
  3094.  
  3095.   +  Search patterns separated by a vertical bar, `|', match
  3096. any string that matches either of the patterns. For example,
  3097. if you wanted to search for either `love' or `money', you would
  3098. use the expression: 
  3099.  
  3100. love|money
  3101.  
  3102. In a more complex example, you could combine two search patterns
  3103. given above: 
  3104.  
  3105. s.*ch|fo.d
  3106.  
  3107.   +  
  3108.  
  3109. A caret, `^', at the very beginning of a search pattern means
  3110. that text will match the pattern only if it immediately follows
  3111. markup (a start- or end-tag, or a character entity). Such text
  3112. must not be separated from the markup by white space. Anywhere
  3113. else, the caret is not treated as a special search character
  3114. (except in sub-strings, see below). For example, if you wanted
  3115. to search for the word `Note' immediately following markup,
  3116. you could use:
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122. ^Note
  3123.  
  3124.   +  
  3125.  
  3126. A dollar sign, `$', at the very end of a search pattern means
  3127. that text will match the pattern only if it is immediately followed
  3128. by markup. Such text must not be separated from the markup by
  3129. white space. Anywhere else, the dollar sign is not treated as
  3130. a special search character. For example, if you wanted to search
  3131. for the word `sub' immediately preceding markup, you could use:
  3132.  
  3133. sub$
  3134.  
  3135.   +  
  3136.  
  3137. A pair of square brackets, `[' and `]', around any string of
  3138. characters defines a sub-string that matches any one of the
  3139. characters between the brackets. For example, 
  3140.  
  3141. an[dy]
  3142.  
  3143. matches `and' and `any'.
  3144.  
  3145.   
  3146.  
  3147.  By contrast, a string of characters preceded by a caret, `^',
  3148. within brackets, matches any character not in the string. For
  3149. example, 
  3150.  
  3151. th[^ei][a-z]*
  3152.  
  3153.  matches any word that begins with `th', which is not followed
  3154. by an `e' or `i'. It would match `that' and `thought' but not
  3155. `therefore' or `this'.
  3156.  
  3157.   +  
  3158.  
  3159. A sub-string, within square brackets, of the form 
  3160.  
  3161. [char1-char2]
  3162.  
  3163.  matches any character in the range of ASCII characters beginning
  3164. at char1 and ending at char2. For example, the sub-string 
  3165.  
  3166. [e-p]
  3167.  
  3168.  matches any lowercase letter between `e' and `p', inclusive.
  3169. The substring 
  3170.  
  3171. [A-Za-z]
  3172.  
  3173. matches any upper- or lower-case letter. Note that if searching
  3174. is not in case-sensitive mode (see below), no distinction between
  3175. lower case and upper case letters is made in character ranges.
  3176. In this case, for example, the character range 
  3177.  
  3178. [a-z]
  3179.  
  3180.  would match any upper- or lower-case letter.
  3181.  
  3182.   +  An expression of the form 
  3183.  
  3184. [^char1-char2]
  3185.  
  3186.  matches any character not in the range of ASCII characters
  3187. beginning at char1 and ending at char2.
  3188.  
  3189.   +  A range can occur inside a sub-string. For example, the
  3190. pattern:
  3191.  
  3192. [ac-fh]
  3193.  
  3194.  matches any of `a', `c' through `f', and `h'.
  3195.  
  3196.   +  
  3197.  
  3198. If you wish to use any of the characters `^', `]', or `-' as
  3199. a literal character within a sub-string rather than as a special
  3200. search character, there are certain rules you must follow. 
  3201.  
  3202.   +  
  3203.  
  3204. The `^' character is special only if it occurs as the first
  3205. character in a sub-string. Otherwise, it's treated as a literal
  3206. character. E.g.,
  3207.  
  3208. [joy^]
  3209.  
  3210.  
  3211.  will match any of the characters `j', `o', `y', and `^'.
  3212.  
  3213.   +  The character `-' is a special search character if it occurs
  3214. between other characters in the sub-string. If it occurs at
  3215. the beginning or end of the sub-string, it is a literal character.
  3216. For example, the sub-string
  3217.  
  3218. [a-]
  3219.  
  3220.  will match `a' or `-'.
  3221.  
  3222.   +  The character ']' terminates a sub-string unless it occurs
  3223. as the first character. For example,
  3224.  
  3225. []ab]
  3226.  
  3227.  will match `a' or `b' or `]'. But 
  3228.  
  3229. [ab]]
  3230.  
  3231.  matches `a' or `b' followed by `]'.
  3232.  
  3233. None of the otherwise special search characters, including `\'
  3234. and `[' has special meaning within a sub-string.
  3235.  
  3236.   +  If you surround a sub-expression in the search string by
  3237. parentheses, `(' and `)', you can refer in the replace string
  3238. to whatever this sub-expression matches. In general, an expression
  3239. in the replace string of the form `\n', where n is a number
  3240. from 1 to 9, means "replace this expression with whatever the
  3241. nth expression in brackets in the search string has matched".
  3242. For example, if the search string is 
  3243.  
  3244. (.*)read
  3245.  
  3246.  and the replace string is
  3247.  
  3248. \1ox
  3249.  
  3250.  then if the search string matches `bread', the found text will
  3251. be replaced by `box'. This is because the sub-expression `(.*)'
  3252. matched the letter `b'; the expression `\1' in the replace string
  3253. means "replace this expression with whatever is matched by the
  3254. first expression in parentheses in the search string". Therefore
  3255. `b' is substituted for `\1' and the replace string becomes `box'.
  3256.  
  3257. Here is a more complicated example: suppose the search string
  3258. is
  3259.  
  3260. (v.*e) (v.*a)
  3261.  
  3262.  and the replace string is
  3263.  
  3264. \2 \1
  3265.  
  3266. Now the search string may match the words `vice versa'. The
  3267. first sub-expression, `(v.*e)', matches `vice' and the second
  3268. sub-expression, `(v.*a)', matches `versa'. In the replace string,
  3269. HoTMetaL replaces `\2' by what the second sub-expression in
  3270. the search string matched, and replaces `\1' by what the first
  3271. sub-expression matched. Therefore the replace string becomes
  3272. `versa vice'. The net effect of the operation is to replace
  3273. an occurrence of `vice versa' with `versa vice'.
  3274.  
  3275. It is possible to nest sub-expressions. In this situation, the
  3276. sub-expressions are numbered according to the order of occurrence
  3277. of their left parentheses. For example, if the search string
  3278. were
  3279.  
  3280. (a(bc)d)
  3281.  
  3282.  and the replace string
  3283.  
  3284. \2 \1
  3285.  
  3286.  the effect would be to find `abcd' and replace it by `bc abcd'.
  3287.  
  3288. The expression `\0' in a replace string refers to the entire
  3289. string that was matched by the search string. E.g., if the search
  3290. string were
  3291.  
  3292. fish
  3293.  
  3294. and the replace string were
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300. gone \0ing
  3301.  
  3302.  then an occurrence of `fish' would be replaced by `gone fishing'.
  3303.  
  3304.  
  3305.  
  3306. 4.6.4. Elements and character entities as search patterns
  3307.  
  3308. A search string that begins with an open angle bracket, `<',
  3309. followed by a valid element name matches an element of that
  3310. name. If the search succeeds, the insertion point is positioned
  3311. to the left of the start tag. It does not matter here or in
  3312. other search options whether tags are visible or not (see Show/Hide
  3313. Tags in the View menu). The name in the search string can optionally
  3314. be followed by a closing angle bracket (>). 
  3315.  
  3316. For example, 
  3317.  
  3318. <META
  3319.  
  3320.  matches the element that has the name META. Element names are
  3321. not case sensitive in HoTMetaL, so `<meta' and `<META' would
  3322. match the same elements.
  3323.  
  3324. In a replacement operation, if the search string and the replace
  3325. string are both elements, one or more occurrences of the element
  3326. in the search string will be changed to the type specified in
  3327. the replace string. The contents of the element will be unchanged.
  3328. The tag in the replace string cannot be followed by text; if
  3329. it is, an error message will be displayed and the find operation
  3330. will not be performed. 
  3331.  
  3332. If only the replace string is an element, the text that is found
  3333. will be removed and replaced. Replacement will not occur unless
  3334. the document contains a selection.
  3335.  
  3336. 4.6.4.1. Searching for text within an element
  3337.  
  3338. The search string can contain both an element name and, following
  3339. it, some text (or a pattern) that must be matched within the
  3340. element. In this case the element must end with a closing angle
  3341. bracket. For example, 
  3342.  
  3343. <P>The
  3344.  
  3345.  would match the word `The' anywhere within the element P. This
  3346. is similar to the kind of restrictive searching that can be
  3347. done using the Find In string but it can be used in conjunction
  3348. with that feature to further restrict the search. In the last
  3349. example, if the Find In string is set to: 
  3350.  
  3351.  
  3352. <OL
  3353.  
  3354.  the word `The' would be matched if it appeared in a paragraph
  3355. in a ordered list but not if it appeared in a paragraph in another
  3356. context.
  3357.  
  3358. 4.6.5. Error messages
  3359.  
  3360. If you have a badly-formed search or replace string, HoTMetaL
  3361. will inform you of this with an error message at the bottom
  3362. of the Find & Replace dialog box. This message will consist
  3363. of a description of the error and the character position in
  3364. the string at which the error occurred. Errors that will be
  3365. reported include: invalid element or character entity names;
  3366. unmatched parentheses and brackets in search patterns; `?',
  3367. `*', or `+' not preceded by any character; invalid character
  3368. ranges.
  3369.  
  3370. For example, if you use the search pattern:
  3371.  
  3372. <QUAGMIRE
  3373.  
  3374.  you will get the error message: 
  3375.  
  3376. In Find string: Invalid element name at position 2
  3377.  
  3378.  because the HTML files do not contain an element called QUAGMIRE.
  3379. This message also indicates that the error was detected at the
  3380. second character in the search string.
  3381.  
  3382. 4.6.6. Other search options
  3383.  
  3384. There are five options that can be set in searches. You may
  3385. want to search forward or backward through the file, match only
  3386. whole words, match upper- and lower-case exactly, employ wrapping,
  3387. or perform pattern searching. These options can be used in combination
  3388. and are turned on or off by clicking in the five check boxes
  3389. in the Find & Replace dialog box. The defaults for these options
  3390. can be set with the appropriate configuration variable. In this
  3391. case, the boxes will be   selected, or not, according to the
  3392. configuration setting. Values set with configuration variables
  3393. may be overridden during your editing session by clicking in
  3394. the check boxes in the dialog box.
  3395.  
  3396. 4.6.6.1. Whole Words
  3397.  
  3398. A search string may be part of a word or it may represent an
  3399. entire word. Turning on Whole Words means that the search will
  3400. match a sequence of one or more whole words only. For example,
  3401. if HoTMetaL were told to look for `red' with Whole Words turned
  3402. on, it would not find that string in `Fred'.
  3403.  
  3404.  With this option turned on, the pattern `a.*z' will match `a
  3405. tough quiz' but not the first 12 characters (including the spaces)
  3406. of a `tough buzzard'. The default for this option can be set
  3407. with the find_whole_words configuration variable.
  3408.  
  3409. 4.6.6.2. Case Sensitive
  3410.  
  3411. When case sensitivity is turned on, HoTMetaL will look for the
  3412. search string exactly as you've typed it--matching upper case
  3413. to upper case and lower to lower. With case sensitivity off,
  3414. the program will find any variation: a search string of `alice'
  3415. would match `ALICE', `alice' and `AliCE'. This option applies
  3416. to patterns as well as text. The default for this option can
  3417. be set with the find_case_sensitive configuration variable.
  3418.  
  3419. 4.6.6.3. Backwards Search
  3420.  
  3421. HoTMetaL normally starts its searches at the  insertion point
  3422.  (or the end of the selection) and moves towards the bottom
  3423. of the file. Backwards Search indicates that you want the search
  3424. to move from the insertion point (or the start of the selection)
  3425. back to the top of the file. If wrapping is not enabled (see
  3426. below), HoTMetaL does not wrap around the beginning or end of
  3427. the file, so you should always make sure that you begin your
  3428. search from the appropriate place in the file. The default for
  3429. this option can be set with the find_backward configuration
  3430. variable.
  3431.  
  3432. 4.6.6.4. Wrap
  3433.  
  3434. When Wrap is turned on, HoTMetaL will wrap around the top or
  3435. bottom of the file, depending on whether you are doing a forward
  3436. or backward search. The default for this option can be set with
  3437. the find_wrap configuration variable.
  3438.  
  3439. 4.6.6.5. Find Patterns
  3440.  
  3441. This option allows you to turn on or off HoTMetaL's ability
  3442. to find patterns. If Find Patterns is turned off, any special
  3443. characters that you type in the find or replace strings will
  3444. be treated as ordinary characters. The default for this option
  3445. can be set with the find_patterns configuration variable.
  3446.  
  3447. 4.6.7. Find In
  3448.  
  3449. One of HoTMetaL's more powerful search features is its ability
  3450. to restrict a search to the contents of particular type of element.
  3451. This means, for example, that you could use Find and Replace...
  3452. to check that a word is in uppercase letters whenever it appears
  3453. in a paragraph, but in upper and lowercase when it's part of
  3454. a title. 
  3455.  
  3456.  The Find In text box is used to specify the element that you
  3457. want to restrict searching to. The format for this string is
  3458. identical to that for the search string when searching for an
  3459. element, except that the element name can't be followed by text.
  3460.  
  3461. 4.7. Find Next
  3462.  
  3463. Performs a search for the search string specified in the previous
  3464. Find & Replace dialog box. Once a search string has been specified,
  3465. this command has the same effect as clicking the Find button
  3466. in the Find & Replace dialog box. 
  3467.  
  3468. 5. The View menu
  3469.  
  3470. The View menu contains various commands to format the document
  3471. window when editing an HoTMetaL document. This formatting affects
  3472. the HoTMetaL display only: it doesn't affect how browsers will
  3473. display the document.
  3474.  
  3475. 5.1. Numerical values
  3476.  
  3477. The Character... and Separation... commands allow you to enter
  3478. numerical values.  These may be set from a menu or entered directly
  3479. by the user in a text box.  As appropriate, these values may
  3480. be absolute, relative, or expressed as a percentage of some
  3481. base value (this is explained below). The following units may
  3482. be used:
  3483.  
  3484.   -  centimeters (cm) 
  3485.  
  3486.   -   inches 
  3487.  
  3488.   -  machine units
  3489.  
  3490.   -  millimeters (mm) 
  3491.  
  3492.   -  picas
  3493.  
  3494.   -  pixels
  3495.  
  3496.   -  points
  3497.  
  3498.  A pixel is the same as a point, and a machine unit is 1/16
  3499. of a pixel.
  3500.  
  3501. You may use any unit wherever you are allowed to enter values.
  3502. For example, point size may be expressed in points, inches,
  3503. picas, etc. Descriptions of individual commands will indicate
  3504. which kinds of values (absolute, relative, percentage) may be
  3505. used. 
  3506.  
  3507.  Units may be specified by giving the full unit name, the abbreviation
  3508. (mm or cm), or the first few letters of the unit name, as long
  3509. as that specification is unambiguous. 
  3510.  
  3511. 5.1.1. Examples
  3512.  
  3513. The following are examples of valid settings: 
  3514.  
  3515.   -  1 inches
  3516.  
  3517.   -  1.45 i
  3518.  
  3519.   -  2 mm
  3520.  
  3521.   -  2 milli
  3522.  
  3523.   -  3 pix
  3524.  
  3525.   -  6 points
  3526.  
  3527.   -  2 po
  3528.  
  3529.   -  2 pica
  3530.  
  3531.   -  2pica
  3532.  
  3533. 5.1.2. Relative and percentage settings
  3534.  
  3535. Relative settings specify an amount to be added to or subtracted
  3536. from a base setting: they have the same format as absolute settings,
  3537. but are prefaced by a `+' or `-' sign. As well, you may set
  3538. a value to be Adopt Current, which means that the value is to
  3539. be inherited from the surrounding element. Some valid settings
  3540. are:
  3541.  
  3542.   -  -2.67 inches
  3543.  
  3544.   -  +3 picas
  3545.  
  3546.   -  Adopt Current
  3547.  
  3548.   -  ac (same as Adopt Current)
  3549.  
  3550.   -  +0 (same as Adopt Current)
  3551.  
  3552. Values may also be expressed as a percentage by affixing a percent
  3553. (%) sign, the word `percent', or a suitable abbreviation, e.g.:
  3554.  
  3555.   -  100% (same as the default value)
  3556.  
  3557.   -  150 percent (1.5 times the default value)
  3558.  
  3559.   -  243 per (2.43 times the default value)
  3560.  
  3561. 5.2. Show/Hide Tags
  3562.  
  3563. If you select Show Tags, the start- and end-tags in your document
  3564. will appear on the screen as small tag icons, and character
  3565. entities will be represented as rectangular icons containing
  3566. the character name; if you select Hide Tags, the tag icons will
  3567. be hidden, and the character entities will appear in text form.
  3568. This command is toggled: if you choose Show Tags, the menu item
  3569. changes to Hide Tags, and vice versa. The tags that point to
  3570. the right are start-tags, indicating the beginning of an element,
  3571. while those that point to the left are end-tags, indicating
  3572. the end of an element. When you create a new HoTMetaL document,
  3573. tags will be visible by default.
  3574.  
  3575. 5.3. Show/Hide Link and Context View
  3576.  
  3577. This feature allows you to display a window showing the sequence
  3578. of nested elements that terminates at the currentinsertion point
  3579.  or selection.
  3580.  
  3581. This window will not show the structure of the entire document
  3582. (see Show Structure View below) only the hierarchical context
  3583. containing the current position. That is, it displays the sequence
  3584. of open tags at the current position. Any attributes that have
  3585. been set for elements in the sequence will be displayed. 
  3586.  
  3587. The Context View: an attribute is displayed for the fourth element
  3588. in the sequence.
  3589.  
  3590.  When you invoke this command the name toggles to Hide Link
  3591. and Context View; this command should be used to dismiss the
  3592. context view.
  3593.  
  3594. You can bring up a different context view for each open HoTMetaL
  3595. document. 
  3596.  
  3597. 5.4. Show/Hide Structure View
  3598.  
  3599. This command brings up a window that shows the structure of
  3600. the entire document. 
  3601.  
  3602.  You can bring up a different structure view for each open HoTMetaL
  3603. document. Once a structure view is displayed, it remains visible,
  3604. even if you change documents, until it is dismissed.
  3605.  
  3606. The structure view shows the hierarchy of the document in a
  3607. plain, unformatted manner. Each line in the structure view represents
  3608. one element in the document. Each line shows a start tag, an
  3609. end tag and possibly some text between them. The indention of
  3610. the line indicates the level at which the element is nested.
  3611. The text cannot be edited and typing is not recognized, but
  3612. you can use all the editing commands from the Edit and Markup
  3613. menus. 
  3614.  
  3615. To select an element in the structure view, you can either click
  3616. to the left of the start tag icon and drag the cursor across
  3617. the icon, or click twice to the left of the start tag icon.
  3618. Multiple elements can be selected by clicking the mouse to the
  3619. left of a start tag and then dragging down to select successive
  3620. elements.
  3621.  
  3622.  When you invoke this command the name toggles to Hide Structure
  3623. View; this command should be used to dismiss the structure view.
  3624.  
  3625. 5.4.1. Editing in the structure view
  3626.  
  3627. Since text entry is not permitted in the structure view, almost
  3628. all editing is done in the formatted view. The structure view
  3629. is useful when rearranging whole elements or when creating an
  3630. outline for your document. It can also be very useful when you
  3631. are changing styles, for example, with the Character... command.
  3632.  
  3633. You may insert, remove,  etc., elements while in the structure
  3634. view. Any of the valid commands that you select will apply to
  3635. the contents of the structure view.
  3636.  
  3637. Any editing you do in the structure view will appear in the
  3638. formatted view provided it is displaying the same portion of
  3639. the document.
  3640.  
  3641. 5.4.2. Expanding the view of elements
  3642.  
  3643. Clicking on an element icon allows you to open and close elements,
  3644. that is, show and hide their contents. When an element is open,
  3645. all the elements it contains (but not their sub-elements) are
  3646. shown as indented lines following that element's line. (To see
  3647. the contents of sub-elements, open these in turn.) When an element
  3648. is closed, access to its contents is not possible because the
  3649. contents are not displayed in the window. Since you can insert
  3650. elements in the structure view, you can use this feature to
  3651. build an outline (structure) for your document before you begin
  3652. to type in the text.
  3653.  
  3654. 5.5. Show Image
  3655.  
  3656. This command allows you to display a file (usually a bitmapped
  3657. graphic file) referred to by a URL in the current element (which
  3658. must be one of IMG and LINK). To view a file, invoke this command
  3659. when the insertion point or selection is inside the desired
  3660. element.
  3661.  
  3662. Show Image uses the following mechanism to determine how to
  3663. process the file--in this explanation, assume that the URL is:
  3664.  
  3665. file:///c|/rodney/orwell/george.gif
  3666.  
  3667.   1. HoTMetaL reads the filename (the last part of the URL).
  3668. In this case it's "george.gif"
  3669.  
  3670.   2. HoTMetaL reads the file extension (the part after the dot).
  3671. In this example  the extension is "gif". This extension should
  3672. indicate the format of the file: we would expect this file to
  3673. be in GIF format.
  3674.  
  3675.   3. HoTMetaL scans the defined configuration variables, looking
  3676. for one called view_extension, where extension is the file extension
  3677. read in the previous step. In this case, it would look for a
  3678. variable called view_gif. The value of this variable (if it's
  3679. defined) should be a command that processes the file, for example:
  3680.  
  3681.  
  3682. view_gif=c:\windows\pbrush.exe $FILE
  3683.  
  3684. If this variable is not found, Show Image terminates with an
  3685. error message.
  3686.  
  3687.   4. If the variable is found, the full filename specified in
  3688. the URL (including the path, if specified) is substituted for
  3689. the string `$FILE', and the resulting command line will be executed
  3690. on your system. (If `$FILE' is not present in the command, the
  3691. full filename is simply appended to the command.) In this example,
  3692. the resulting command line would be: 
  3693.  
  3694. c:\windows\pbrush.exe c:\rodney\orwell\george.gif
  3695.  
  3696. (This invokes the Windows Paintbrush program.)
  3697.  
  3698. If you intend to use Show Image, you should ensure that the
  3699. necessary configuration variables (view_gif,  view_tif, view_jpg,
  3700. etc.)are defined before you invoke HoTMetaL, and any programs
  3701. that these variables refer to are available on your system.
  3702.  
  3703. Since Show Image uses only the filename part of a URL, the 
  3704. URL can specify a file on any server, provided that a file of
  3705. the same name exists on your local system.
  3706.  
  3707. 5.6. Show/Hide Inline Images
  3708.  
  3709. If you invoke Show Inline Images, all GIF  files referred to
  3710. by URLs of IMG elements in the current document will be displayed
  3711. inline (i.e., in the HoTMetaL document window). The menu item
  3712. will toggle to Hide Inline Images. Invoking Hide Inline Images
  3713. will cause all such images to be hidden. 
  3714.  
  3715. If the show_inline_images configuration variable is set to TRUE,
  3716. GIF  images will be displayed when a file is opened, and this
  3717. menu item will be toggled to Hide Inline Images. Otherwise (if
  3718. show_inline_images is FALSE, or not set at all), images will
  3719. not be displayed when a file is opened, and the menu item will
  3720. be toggled to Show Inline Images.
  3721.  
  3722. 5.7. Show/Hide URLs
  3723.  
  3724. By default, HoTMetaL displays the URLs associated with relevant
  3725. elements, in the prefix of the element's start-tag. If you want
  3726. to hide the URLs, choose Hide URLs: the URLs will disappear
  3727. from the display, and the menu item will toggle to Show URLs.
  3728. Clicking on Show URLs will cause the URLs to be displayed again.
  3729.  
  3730. 5.8. Character...
  3731.  
  3732. This item allows you to change character-related formatting
  3733. properties such as font, font size, and justification. Remember
  3734. that this formatting will affect the document in HoTMetaL only;
  3735. it doesn't affect how the document is displayed by browsers.
  3736.  
  3737. 5.8.1. Setting an element's formatting
  3738.  
  3739. You can change the format assigned to an element in the document
  3740. at any time. When you invoke the Character... command, HoTMetaL
  3741. gives you a dialog box allowing you to set formatting parameters
  3742. for the current element (the one the insertion point or selection
  3743. is in). When you change these parameters, they will change for
  3744. all occurrences of the current element type.
  3745.  
  3746.   The name of the element currently being formatted appears
  3747. in the lower left corner of the dialog box. If you move the
  3748. cursor to a different element while the Characters dialog box
  3749. is on the screen, the dialog box changes to reflect the formatting
  3750. of the new element.
  3751.  
  3752. 5.8.2. Setting the default formatting
  3753.  
  3754.  If the insertion point is not inside any element, (e.g., it's
  3755. to the left of the HTML start-tag)  then choosing Characters...
  3756. gives you a dialog box to set the default format. The "element
  3757. name" in the lower left corner of the dialog will read  ".DEFAULT".
  3758. Default formatting will ripple through the entire structure,
  3759. provided that the elements in the document's hierarchy have
  3760. their formatting parameters set to "Adopt Current".
  3761.  
  3762. 5.8.3. Font Family
  3763.  
  3764. The drop-down list box for Font Family shows the current choice.
  3765. You can specify the font family by name or adopt the font of
  3766. a surrounding element (adopt current). To select a new font
  3767. family, position the mouse on the Font Family   arrow. Click
  3768. and drag down the  list of the font family names available on
  3769. your system. Release the mouse button over your choice.
  3770.  
  3771. The default font family can be specified with the default_font_family
  3772. configuration variable. A font family specified in this manner
  3773. will be the default for all open documents. The built-in default
  3774. font family is Helvetica.
  3775.  
  3776. 5.8.3.1. Adopt Current
  3777.  
  3778. Sometimes you may want to change the font family you're using
  3779. on the screen for many related elements. Changing the Font Family
  3780. for every element would be time-consuming and tedious. You can
  3781. allow changes to be inherited by taking advantage of HoTMetaL's
  3782. ability to pass format settings from one element to the next.
  3783.  
  3784. For example, if the insertion point is surrounded by the following
  3785. tags:
  3786.  
  3787. HTML BODY P 
  3788.  
  3789. and you set the Font Family to Adopt Current in the BODY and
  3790. P elements, then whatever font family you establish in the HTML
  3791. element will ripple through the entire structure.
  3792.  
  3793. 5.8.4. Font Size
  3794.  
  3795. Selecting the font size is similar to selecting the font family.
  3796. You can open the Font Size    drop-down list box and choose
  3797. any size (including Adopt Current) shown. You may also enter
  3798. a size in the text box to the left of the arrow. This size may
  3799. be an absolute or relative value. If the size you chose is unavailable,
  3800. HoTMetaL will choose the next smallest font size. Relative values
  3801. (+2 points, -3 points, etc.) are added to the point size of
  3802. the surrounding element.
  3803.  
  3804. The default font size can be specified with the default_font_size
  3805. configuration variable. A font size specified in this manner
  3806. will be the default for all open documents. The built-in default
  3807. font size is 12 points.
  3808.  
  3809. 5.8.5. Font Style
  3810.  
  3811. The check   boxes under the Font Style heading allow you to
  3812. add style variations to the font family. The check   boxes can
  3813. be set individually or in any combination. If you want the style
  3814. to be the same as the style for the surrounding element, click
  3815. on the Adopt Current check   box only.
  3816.  
  3817. 5.8.5.1. Bold, Italic
  3818.  
  3819. As an example, consider a document with three emphasis elements:
  3820. B, I, and EM. So that the contents of these elements will stand
  3821. out, you could set the font family and font size to Adopt Current
  3822. for each of these elements, make them all Inline (see below)
  3823. and then set B to Bold, I to Italic, EM to Bold and Italic.
  3824. These emphasis elements would then cause their contents to be
  3825. the same font and size as the surrounding text but each would
  3826. have a different style.
  3827.  
  3828. 5.8.5.2. Superscript, Subscript
  3829.  
  3830. Superscript and Subscript raise and lower, respectively, the
  3831. baseline of the font. Superscripted text is raised so that its
  3832. baseline is one-third of its ascent above the baseline of the
  3833. containing element. (The ascent is roughly the distance from
  3834. the baseline to the top of an uppercase letter.) Similarly,
  3835. the baseline of subscripted text is lowered to be one-third
  3836. of the ascent below the baseline of the surrounding element.
  3837. To make effective use of these style options, either choose
  3838. a font size that is smaller than the size of the containing
  3839. element or ensure that the line spacing of the containing element
  3840. is large enough that the tops of the superscripted characters
  3841. and bottoms of the subscripted characters are not cut off. 
  3842.  
  3843. Subscripts and superscripts are normally not supported by browsers.
  3844.  
  3845. 5.8.5.3. Toggle
  3846.  
  3847. When Toggle is selected as part of the font style, the other
  3848. style settings are turned off in the current element if they
  3849. are turned on in the containing element. For example, an element
  3850. whose font style is set to Bold and Toggle will appear as bold
  3851. text within plain (Roman) surrounding text and as plain within
  3852. bold surrounding text.
  3853.  
  3854. 5.8.5.4. Adopt Current
  3855.  
  3856. Adopt Current means that the font style options of the containing
  3857. element are adopted in addition to those explicitly set for
  3858. this element type. For example, if Adopt Current is the only
  3859. option selected, then the font style for an element of this
  3860. type will be identical to the font style of its containing element.
  3861. Another example would be an element whose font style is set
  3862. to both Adopt Current and Italic. Then the element's text will
  3863. appear with a font style of italic within an element containing
  3864. plain text and as bold-italic in bold text.
  3865.  
  3866. 5.8.5.5. Underline
  3867.  
  3868. Underline allows you to underline the text of the element.
  3869.  
  3870. 5.8.6. Line Height
  3871.  
  3872. The Line Height specifies the vertical height from the bottom
  3873. of one line to the bottom of the next line in the same element.
  3874. This value should normally be set slightly larger than the font
  3875. size so that the lines won't appear clipped.
  3876.  
  3877. You may select single, double, or triple spacing from the  drop-down
  3878. list box labeled Line Height. Double spacing gives twice the
  3879. line height of single spacing; triple spacing gives three times
  3880. the line height of single spacing. A value may also be entered
  3881. directly in the text box to the right of the arrow.  This value
  3882. may be absolute, relative, or a percentage.
  3883.  
  3884. A percentage line height is interpreted as a percentage of single
  3885. spacing. I.e., 100 percent is the same as single spacing, 150
  3886. percent is 1.5 times as high as single spacing, and so on.
  3887.  
  3888. If you give a relative value then the line height is equal to
  3889. the single spaced line height, plus or minus the amount specified.
  3890.  
  3891. An absolute line height should be at least as large as the point
  3892. size: otherwise, the lines will overlap. A value of about 1.2
  3893. times the point size would be normal.
  3894.  
  3895. If you select Adopt Current for the line height, then the element
  3896. you are formatting will assume the absolute line height of its
  3897. surrounding element. So if the surrounding element has a font
  3898. size of 12 points and single line spacing, and you choose, say,
  3899. a font size of 24 points for the current element, it will have
  3900. the same line height as if it had a font size of 12 points,
  3901. because that is the line height of the surrounding element.
  3902. Line height defaults to Adopt Current.
  3903.  
  3904. 5.8.7. Justification
  3905.  
  3906. HoTMetaL offers four styles of text justification plus the capability
  3907. to inherit the justification style from the surrounding element.
  3908. You can choose the one you want by clicking on the appropriate
  3909. icon. The styles are mutually exclusive: you can choose just
  3910. one.
  3911.  
  3912. The choices are:
  3913.  
  3914.   +  Left (flush left, ragged right): All the spaces between
  3915. words are the same width, and the text is aligned on the left,
  3916. leaving the right-hand edge uneven.
  3917.  
  3918.   +  Right (flush right, ragged left): All the spaces between
  3919. words are the same width and the text is aligned on the right.
  3920.  
  3921.   +  Centered: all the spaces between words are the same width
  3922. and the lines are centered on the midpoint of the line length.
  3923.  
  3924.   +  Both (flush right and left--often called justified): Spaces
  3925. between words are adjusted to force both left- and right-hand
  3926. edges of the text to be even.
  3927.  
  3928.   +  Adopt Current: the justification style is inherited from
  3929. the surrounding element.
  3930.  
  3931. 5.8.8. Fill
  3932.  
  3933. This group of choices allows you to specify whether HoTMetaL
  3934. should treat carriage return characters as spaces or as line
  3935. ends. When  Fill is selected, the lines are broken at the last
  3936. space before the right indent. If you type Return a return character
  3937. is inserted but is treated as though it were a space. When No
  3938. Fill is selected, HoTMetaL will not fill the lines--when you
  3939. type Return, a new line will be started. 
  3940.  
  3941. For example, poetry and centered headings would normally be
  3942. in No Fill mode, while the contents of a paragraph would be
  3943. in Fill mode.
  3944.  
  3945. Browsers typically display elements (with the exception of PRE)
  3946. in fill mode.
  3947.  
  3948. 5.8.8.1. Saving filled elements
  3949.  
  3950. When you save a file, you may choose to have line breaks inserted
  3951. after a certain number of characters in all elements that are
  3952. in fill mode. See the description of the Save command in the
  3953. chapter on the File menu for more details.
  3954.  
  3955. 5.8.9. Format Types
  3956.  
  3957. For the purposes of screen formatting, the elements are divided
  3958. into two broad categories: Block and Inline. You can set the
  3959. category for each element by clicking on the appropriateoption
  3960. button  in the Format Type group.
  3961.  
  3962. 5.8.9.1. Block
  3963.  
  3964. Block elements:
  3965.  
  3966.   +  
  3967.  
  3968. Always start on a new line if there are any end-tags or text
  3969. on the current line. 
  3970.  
  3971.   +  
  3972.  
  3973. Cause any element or text that follows them to begin on a new
  3974. line.
  3975.  
  3976.   +  
  3977.  
  3978. Can have all the formatting options set: justification, font
  3979. family, size and style, vertical and horizontal spacing, and
  3980. tab settings.
  3981.  
  3982. 5.8.9.2. Inline
  3983.  
  3984. Inline elements:
  3985.  
  3986.   +  
  3987.  
  3988. Cause no line break either before or after the element. This
  3989. format might be used for an emphasized word or phrase or a short
  3990. quotation.
  3991.  
  3992.   +  
  3993.  
  3994. Can have only certain formatting options set: font family, size,
  3995. and style. The other options are inherited from the surrounding
  3996. element.
  3997.  
  3998. 5.9. Separation...
  3999.  
  4000. This command lets you set the amount of vertical space that
  4001. separates an element from neighboring elements. Remember that
  4002. the separation values you set with this command will affect
  4003. only how the document looks in HoTMetaL; they don't affect how
  4004. the document is displayed by browsers.
  4005.  
  4006. To edit these values, move the   insertion point inside an instance
  4007. of an element you want to format, and click on the Separation...
  4008. menu item, or click inside the desired element when the Separation
  4009. dialog is already on the screen. 
  4010.  
  4011. 5.9.1. Top and bottom space
  4012.  
  4013. Top and bottom space control the vertical separation between
  4014. elements. They are available only for block elements.
  4015.  
  4016. Top Space determines the minimum amount of vertical white space
  4017. that must precede the element. If the element before this one
  4018. has a Bottom Space value, the actual separation will be the
  4019. greater of the current element's top space and the preceding
  4020. element's bottom space.
  4021.  
  4022. The top space can be specified as an absolute amount or as a
  4023. percentage of one line height at the current line height. For
  4024. example, if you want 1 1/2 lines of white space between paragraphs,
  4025. set the top space to 150%. The top and bottom space separations
  4026. are added to the normal line spacing, so if two successive elements
  4027. have a bottom separation of zero and top separation of zero,
  4028. respectively, the baseline of the last line of the first element
  4029. and the first line of the following element will be one line
  4030. height apart.
  4031.  
  4032. Bottom Space determines the minimum amount of vertical white
  4033. space that must follow the block. The actual separation is the
  4034. greater of the current element's bottom space and the next element's
  4035. top space. The value is specified in the same way as for Top
  4036. Space, above.
  4037.  
  4038. 5.9.2. Tabbed elements
  4039.  
  4040. An element that has Tabbed turned on is formatted as if it started
  4041. with a tab. This command does not actually insert a tab into
  4042. the text. Only inline elements may be designated as tabbed.
  4043. This option is useful for displaying simple tabular material.
  4044.  
  4045.  
  4046. 6. The Markup menu
  4047.  
  4048.  The Markup menu contains commands to insert and edit HTML markup.
  4049.  
  4050. 6.1. Interpret Document
  4051.  
  4052. Sometimes you will attempt to open a document that contains
  4053. structural errors and HoTMetaL will be unable to correct them.
  4054. In this situation HoTMetaL will give you the choice of passing
  4055. the file through a filter or opening it as a text document so
  4056. that you can correct the errors manually. In the latter case,
  4057. when you have corrected the errors in a text document, and while
  4058. the text document is still the current open document, you can
  4059. use Interpret Document to convert it into an open document in
  4060. HoTMetaL's internal format (which causes tag icons to be displayed
  4061. and allows graphical editing). Alternatively, you can save the
  4062. document and then open it using the Open... command in the File
  4063. menu.
  4064.  
  4065.  If Interpret Document discovers an error in the document, the
  4066. error will be reported and the insertion point will move to
  4067. its location. In this situation, the document will not be converted
  4068. to HoTMetaL format.
  4069.  
  4070. Interpret Document is very similar to Open...: the difference
  4071. is that Interpret Document does the equivalent of an open on
  4072. the current open text document, rather than on a file that was
  4073. chosen from a   file selection dialog box. 
  4074.  
  4075. This command will be enabled only of the current document is
  4076. a text document. Normally HoTMetaL does not allow you to open
  4077. a text document for editing as text: a file can be opened in
  4078. this form only if it contains structural errors that HoTMetaL
  4079. cannot resolve.
  4080.  
  4081. 6.2. Insert Element...
  4082.  
  4083. This command creates a new element by inserting a new pair of
  4084. start- and end-tag icons.
  4085.  
  4086. When you invoke this command, you are given the Insert Element
  4087. dialog box, which contains a list of names of the elements permitted
  4088. by the rules file at the location of the insertion point (or
  4089. selection) in the document.
  4090.  
  4091. 6.2.1. The list of elements
  4092.  
  4093. The left column of the list box contains an alphabetical list
  4094. of element names; the right column contains a phrase describing
  4095. the corresponding element. The name of the first element (if
  4096. there is one) required by the HTML rules file at this point
  4097. in the document will be followed by the `<' character. 
  4098.  
  4099. 6.2.2. Inserting an element
  4100.  
  4101.  To select an element, click once on the line containing the
  4102. element name, or type the first character of the element name
  4103. repeatedly until the correct element is selected.  Then click
  4104. once on the Insert Element button to insert it. Alternatively,
  4105. you can double-click on the line that contains the element name
  4106. in the scroll box.
  4107.  
  4108. If the document contains a selection rather than an  insertion
  4109. point,  the selection will be overwritten by the inserted element.
  4110.  
  4111. 6.2.3. Restrictions
  4112.  
  4113. Insert Element... will be disabled and the menu item grayed-out
  4114. if there are no elements that can be inserted at the insertion
  4115. point or current selection without creating an incorrectly marked
  4116. up document. Often the command will become enabled if rules
  4117. checking is turned off (see Turn Rules Checking On/Off), but
  4118. there are some elements in which you will never be allowed to
  4119. insert an element: BASE, BR, HR, IMG, INPUT, ISINDEX, LINK,
  4120. META, and NEXTID.
  4121.  
  4122. 6.2.4. Required elements
  4123.  
  4124. The Insert Element dialog box includes a check box labeled Include
  4125. Required Elements. When this box is  selected, inserting an
  4126. element causes the first required subelement (if there is one)
  4127. to be inserted as well. This option may also be set with the
  4128. include_required_elements configuration variable.  This process
  4129. is recursive, so that if the required subelement itself has
  4130. a required subelement, this element will also be inserted, and
  4131. so forth. Note that this does not mean that all required subelements
  4132. of the current element will be inserted, only the first required
  4133. subelement (and its own first required subelement, and so forth).
  4134.  
  4135. 6.3. Surround...
  4136.  
  4137. This command lets you surround the current selection with a
  4138. new element.
  4139.  
  4140. This command will be available only if the document contains
  4141. a selection. When you invoke Surround..., the Surround dialog
  4142. box appears: it contains a list of elements that can surround
  4143. the selection and still leave the document correctly marked
  4144. up. Choose an element in the same manner as when inserting an
  4145. element. 
  4146.  
  4147. The command will be disabled and the menu item grayed-out if
  4148. there are no elements that can surround the selection without
  4149. creating an incorrectly marked up document. Often the command
  4150. will become enabled if rules checking is turned off (see Turn
  4151. Rules Checking On/Off), but there are some circumstances in
  4152. which you will never be allowed to surround a selection. In
  4153. particular, you cannot surround any selection with one of the
  4154. following elements: BASE, BR, HR, IMG, INPUT, ISINDEX, LINK,
  4155. META, and NEXTID. 
  4156.  
  4157. 6.4. Change...
  4158.  
  4159. Changes the type of the current element. (The current element
  4160. is the innermost element containing the insertion point  or
  4161. selection. If the selection consists of an entire element, including
  4162. its start- and end-tags, then the current element is the one
  4163. containing the selected element, not the selection itself.)
  4164.  
  4165. When you invoke this command, HoTMetaL presents you with a dialog
  4166. box containing a list of elements that can replace the current
  4167. element and still leave the document correctly marked up. You
  4168. may choose the appropriate element from the list in the ways
  4169. described above for the Insert Element... and Surround... commands.
  4170.  
  4171. The command will be disabled and the menu item grayed-out if
  4172. there are no elements that can replace the current element without
  4173. creating an incorrectly marked up document. Often the command
  4174. will become enabled if rules checking is turned off (see Turn
  4175. Rules Checking On/Off in the  Special menu), but there are some
  4176. circumstances in which you will not be allowed to change the
  4177. current element: if the current element has any content (elements,
  4178. text, or character entities) you cannot change it to any of:
  4179. BASE, BR, HR, IMG, INPUT, ISINDEX, LINK, META, and NEXTID. 
  4180.  
  4181. 6.5. Edit SGML Attributes...
  4182.  
  4183. This command lets you view and edit the attributes of the current
  4184. element.
  4185.  
  4186. To edit the attributes of an element, set the insertion point
  4187. inside that element (i.e., make it the current element). Then
  4188. invoke the Edit SGML Attributes... command. You will be presented
  4189. with a dialog box that can be used to edit the attribute list.
  4190.  
  4191. The dialog box will change depending on the type and number
  4192. of attributes that have been defined for this element in the
  4193. rules file. In every case, however, the dialog box will consist
  4194. of several lines, one per attribute. Each line will consist
  4195. of: 
  4196.  
  4197.   +  
  4198.  
  4199. The name of the attribute.
  4200.  
  4201.   +  
  4202.  
  4203.  A drop-down list box or a text box, depending on the type of
  4204. attribute. If the attribute value is defined as being one of
  4205. a list of values, then the line in the dialog box line for that
  4206. attribute will contain a drop-down list box   giving the possible
  4207. values. Otherwise, you will see a text box. 
  4208.  
  4209. When you have entered the desired attribute values, click on
  4210. the Apply button.
  4211.  
  4212. 6.6. Insert Character Entity...
  4213.  
  4214. This command lets you insert a character entity into the document.
  4215. Character entities represent special characters that you may
  4216. not be able to enter into a document directly from your keyboard.
  4217.  
  4218. When you invoke this command you get a dialog box containing
  4219. push buttons for the "special" characters in the ISO 8859-1
  4220. character set. To insert a character, just click on the button
  4221. with the mouse. 
  4222.  
  4223. If the character you want to insert is not found in this dialog
  4224. box, you should click on the Other... button. When you do so
  4225. you will get a dialog box that lets you choose character entities
  4226. from a number of entity sets. The entity set is chosen from
  4227. the drop-down list box labeled Entity Set. The character entities
  4228. in the selected entity set are displayed in the list labeled
  4229. Defined Entities. This list has has three columns: the first
  4230. column gives the entity names; the second column will give some
  4231. information about the kind of entity that has been defined (normally
  4232. this will say SDATA, indicating that the character entity is
  4233. a "specific character data entity" in SGML); the third column
  4234. in the list gives the content of the character entity. 
  4235.  
  4236.  To choose an entity set, click on the Entity Set  drop-down
  4237. list box  and make a selection from the list that appears. There
  4238. are only two choices that are really useful: 
  4239.  
  4240.   +  To choose the ISO 8859-1 character set, click on the line
  4241. that reads "8879:1987//Entities Added Latin 1//EN". 
  4242.  
  4243.   +  Local & Active: this set contains all the character entities
  4244. that have been used in the current document so far. The effect
  4245. of this is that character entities that are likely to be frequently
  4246. used are conveniently grouped together. If no entities have
  4247. been used to this point, this list will be empty.
  4248.  
  4249.  
  4250.  
  4251. 6.6.1. Inserting a character entity
  4252.  
  4253. You can insert a character entity by double-clicking on the
  4254. entity name, or clicking once on the name and once on the Insert
  4255. button.
  4256.  
  4257. If the document contains a selection (as opposed to an  insertion
  4258. point)  before the character is inserted, the selection will
  4259. be replaced by the entity reference.
  4260.  
  4261.  You will never be allowed to insert a character entity into
  4262. the elements BASE, BR, HR, IMG, INPUT, ISINDEX, LINK, META,
  4263. and NEXTID.
  4264.  
  4265. 6.6.2. Displaying character entities
  4266.  
  4267. If the Show Tags command is invoked (see the View menu) a character
  4268. entity appears on the screen as an icon consisting of a box
  4269. containing the character name. If Hide Tags is invoked, the
  4270. character itself is displayed. (There are a few characters that
  4271. HoTMetaL cannot display--in these cases the character name,
  4272. surrounded by square brackets, will be displayed instead.) By
  4273. default, character entities (and tags) are displayed as icons.
  4274.  
  4275. You cannot put an insertion point  in the icon or the expanded
  4276. text view of the character entity. You can only select the entire
  4277. character. That is done by clicking the mouse to one side of
  4278. it and then dragging across it.
  4279.  
  4280. 6.7. Turn Rules Checking On/Off
  4281.  
  4282. This command toggles the state of rules checking in HoTMetaL.
  4283.  
  4284. When rules checking is on, HoTMetaL uses the rules file to ensure
  4285. that the document being edited will be correctly marked up.
  4286. While this checking is not complete, it will nevertheless catch
  4287. and prevent most markup errors. Complete checking of the markup
  4288. is done by the validation process that occurs when you open
  4289. or save a file.
  4290.  
  4291. HoTMetaL prevents markup errors in a number of ways.
  4292.  
  4293.   +  
  4294.  
  4295. The commands that could cause errors are disabled. For example,
  4296. the Surround command in the Markup menu will be grayed-out if
  4297. the document would not be correctly tagged after the selected
  4298. content was surrounded by any element.
  4299.  
  4300.   +  
  4301.  
  4302. A restricted list of elements is presented. For example, the
  4303. Insert Element... command will only present a list of those
  4304. elements that will leave the document correctly tagged after
  4305. the insertion.
  4306.  
  4307.   +  
  4308.  
  4309. An opportunity is given to cancel a command before any damage
  4310. is done. For example, if a Paste operation would leave the document
  4311. incorrectly tagged, HoTMetaL will present a warning giving the
  4312. choice of canceling the paste or completing the command after
  4313. first turning rules checking off.
  4314.  
  4315. Rules checking is normally desirable, since it greatly reduces
  4316. the chance of making markup errors. However, there are occasions
  4317. when rules checking can get in the way of the job at hand. Most
  4318. commonly this happens when the operation that you are performing
  4319. involves two or more steps, and one of those intermediate steps
  4320. will leave the document temporarily incorrectly marked up.
  4321.  
  4322. When the rules are not being checked, the commands that were
  4323. previously disabled will usually become enabled; for the exceptions,
  4324. see the documentation on the individual commands. This means
  4325. that you will be able to create an incorrectly tagged document,
  4326. and therefore you should leave the rules off only as long as
  4327. you need to.
  4328.  
  4329. When you choose Turn Rules Checking On from the menu, the menu
  4330. item changes to Turn Rules Checking Off to indicate that this
  4331. state can be toggled. When you turn rules checking back on,
  4332. HoTMetaL will quickly scan your document to make sure it is
  4333. correctly tagged. If it isn't, HoTMetaL will present a warning
  4334. describing the problem and the insertion point  moves to the
  4335. location of the error. Rules checking will remain off. Select
  4336. Turn Rules Checking On again after the problem is corrected.
  4337.  
  4338. The rules checking state (On or  Off) is displayed in the lower
  4339. right corner of the HoTMetaL window.
  4340.  
  4341. 7. The Help menu
  4342.  
  4343. 7.1. About HoTMetaL...
  4344.  
  4345. Displays the HoTMetaL copyright notice.
  4346.  
  4347. 7.2. SoftQuad Home Page
  4348.  
  4349. This command will invoke a browser, displaying the SoftQuad
  4350. home page.
  4351.  
  4352. 8. The Window menu
  4353.  
  4354. This menu contains commands for moving between open files and
  4355. for arranging document windows on the screen. 
  4356.  
  4357. 8.1. Next
  4358.  
  4359. This command lets you cycle through the open files. HoTMetaL
  4360. orders the open files according to the time they were opened.
  4361. When you invoke Next, the file that was opened most recently
  4362. after the current file, and has not yet been closed, becomes
  4363. the current file. If the current file is the most recently opened
  4364. file, then the least recently opened file becomes the current
  4365. file.
  4366.  
  4367. You may also make a file active by clicking on its document
  4368. window, or by selecting it from the list of open files that
  4369. appears at the end of the Window menu (see below).
  4370.  
  4371. 8.2. Previous
  4372.  
  4373. This command is similar to Next, but it makes the file that
  4374. was opened most recently before the current file, and has not
  4375. yet been closed, the current file. 
  4376.  
  4377. 8.3. Cascade
  4378.  
  4379. This command causes all the document windows (including those
  4380. for context and structured views) to be cascaded, in the order
  4381. in which the files were most recently active. That is, the active
  4382. file is displayed at the front, the file that was next most
  4383. recently active is displayed behind it, slightly above and to
  4384. the left, and so forth. 
  4385.  
  4386. 8.4. Tile
  4387.  
  4388. This command causes all the document windows (including those
  4389. for context and structured views) to be tiled. That is, the
  4390. windows will be arranged in a column of non-overlapping, equal-sized
  4391. windows down the frame. The active document will be on top.
  4392. If there are more than three open documents, the windows will
  4393. be arranged in several columns, with the active document at
  4394. the top left.
  4395.  
  4396. 8.5. Tile Vertically
  4397.  
  4398. This command is similar to Tile, but causes all the document
  4399. windows to be arranged in a row of non-overlapping, equal-sized
  4400. windows across the frame. The active document will be on the
  4401. left. If there are more than three open documents, the windows
  4402. will be arranged in columns, with the active document at the
  4403. top left.
  4404.  
  4405. 8.6. Arrange Icons
  4406.  
  4407. If some document windows have been iconified, this command will
  4408. cause the icons to be arranged in a row at the bottom of the
  4409. frame.
  4410.  
  4411. 8.7. Filenames in the Windows menu
  4412.  
  4413. Every open document (including context and structure views)
  4414. will cause a menu item consisting of the document name to be
  4415. added to the Windows menu. Selecting the document name will
  4416. cause that document to become active. Each document name is
  4417. preceded by a number. This number is the mnemonic for the menu
  4418. item, that is, typing the number while the Windows menu is open
  4419. is the same as selecting the menu item.
  4420.  
  4421. 9. The configuration mechanism
  4422.  
  4423. HoTMetaL's configuration mechanism lets you modify HoTMetaL's
  4424. behavior to suit your needs and those of your site.
  4425.  
  4426. There are two types of information in the configuration files.
  4427. There are variables that control HoTMetaL's behavior, and there
  4428. are variables that give the location of files or  directories.
  4429.  
  4430.  
  4431. 9.1. Configuring HoTMetaL
  4432.  
  4433. There are many aspects of HoTMetaL's behavior that you can configure
  4434. to your personal needs or those of your site. For example, you
  4435. can control default options in the Find and Replace dialog box,
  4436. set options for the Save command, and specify the locations
  4437. of various auxiliary files. You can run HoTMetaL without any
  4438. problems using the default configuration, but at some point
  4439. you may prefer to customize. This will be particularly true
  4440. if several people will be using HoTMetaL on the samePC.  
  4441.  
  4442. 9.1.1. Configuration files
  4443.  
  4444. The default configuration files read by HoTMetaL are the file
  4445. sqhm.ini located in the directory where HoTMetaL is installed
  4446. and the file sqhm.ini in the Microsoft Windows directory (usually
  4447. c:\windows). These files contain configuration parameters called
  4448. configuration variables. Variables set in the file in the Windows
  4449. directory take precedence. 
  4450.  
  4451. You can specify that different files are read by the configuration
  4452. mechanism, according to the following procedure:
  4453.  
  4454.   +  If the HoTMetaL command line contains the option -sqconfig
  4455. followed by a list of one or more files, these files will be
  4456. used as the configuration files.
  4457.  
  4458. To specify the files using the command line, you have to modify
  4459. the HoTMetaL command line using the Properties... command in
  4460. the Windows File menu. 
  4461.  
  4462.   *  Click once on the HoTMetaL icon.
  4463.  
  4464.   *  Invoke the Properties... command.
  4465.  
  4466.   *  A dialog box will appear. In the Command line text box
  4467. in this dialog, add the option -sqconfig followed by the filenames.
  4468. For example:
  4469.  
  4470.  
  4471.  
  4472. c:\sqhm\sqhm.exe -sqconfig c:\frances\sqhm.ini
  4473.  
  4474.  You can specify more than one file by separating the files
  4475. with semi-colons: 
  4476.  
  4477. c:\sqhm\sqhm.exe
  4478. -sqconfig c:\frances\sqhm.ini;${SQDIR}\sqhm.ini
  4479.  
  4480.  (This example should be read as one line.) `${SQDIR}' means
  4481. "replace this by the value of the SQDIR environment variable"
  4482. (this variable, if it has a value, names the HoTMetaL directory).
  4483. This setting causes two files to be used: the file c:\frances\sqhm.ini,
  4484. as before, and the filesqhm.ini  located in the HoTMetaL directory.
  4485.  
  4486. Note: the SQDIR (HoTMetaL directory) may also be set on the
  4487. command line. If so, the expression `${SQDIR}' will represent
  4488. the value from the command line. See the section `Setting the
  4489. HoTMetaL directory' in the `A guide for the perplexed' chapter
  4490. for full details.
  4491.  
  4492.   +  
  4493.  
  4494. If there is no -sqconfig option in the HoTMetaL command line,
  4495. but theDOS environment variable SQCONFIG names one or more files,
  4496. then these will be used as configuration files. Here are examples
  4497. of specifying configuration files using this method.
  4498.  
  4499. set SQCONFIG=c:\frances\sqhm.ini
  4500.  
  4501. set SQCONFIG=c:\frances\sqhm.ini;${SQDIR}\sqhm.ini
  4502.  
  4503. The format for the value of the SQCONFIG variable is the same
  4504. as for the value that can come after the -sqconfig command line
  4505. option, as described above.
  4506.  
  4507. Environment variables can be set at the DOS prompt, or if you
  4508. want them to be set every time the PC is booted, you can put
  4509. the same settings in the autoexec.bat file.
  4510.  
  4511.   +  If no configuration files are specified with the -sqconfig
  4512. option or the SQCONFIG environment variable, HoTMetaL will try
  4513. to read the default configuration files: sqhm.ini in the directory
  4514. where HoTMetaL is installed and in the Windows directory (usually
  4515. c:\windows).
  4516.  
  4517. If a number of configuration files are specified using the environment
  4518. variable or the command line, HoTMetaL reads the list of files
  4519. from right to left, that is, in the reverse of the order in
  4520. which they are listed. If a particular variable (parameter)
  4521. has a setting in more than one file, the value in the file that
  4522. is read last will take precedence. If a variable is defined
  4523. more than once in the same file, the value which appears last
  4524. in that file will take precedence over values that appear earlier
  4525. in the file.
  4526.  
  4527. If a variable is not set in any configuration file, but is set
  4528. in the environment, then the setting from the environment is
  4529. used. If there is no setting in the configuration files or in
  4530. the environment, then the built-in default value (if there is
  4531. one) is used. If there is no default value, the variable is
  4532. undefined.
  4533.  
  4534.  In summary, the value of a configuration variable is taken
  4535. from the following sources, in the order given below:
  4536.  
  4537.   1. The configuration files.
  4538.  
  4539.   2. The environment.
  4540.  
  4541.   3. The built-in default.
  4542.  
  4543. 9.1.2. Configuration variables read on start-up!
  4544.  
  4545. Configuration files (and configuration variables in the environment)
  4546. are read by HoTMetaL on start-up, so the changes you make will
  4547. take effect the next time you run HoTMetaL--they will have no
  4548. effect on a currently-running HoTMetaL. If you need them to
  4549. take effect immediately, you will have to exit HoTMetaL and
  4550. restart it.
  4551.  
  4552. 9.1.3. A suggestion: base and personal configuration files
  4553.  
  4554. The following arrangement is one suggestion about how you can
  4555. use configuration files. It involves using two files: a base
  4556. file for variables that don't change very often, and a personal
  4557. file for variables that change more frequently, are experimental,
  4558. or are employed by a single user.
  4559.  
  4560. 9.1.3.1. Base file
  4561.  
  4562. The base file should be used as a system configuration file.
  4563. It should contain the settings that you want to be used as defaults.
  4564. A parameter should be changed in this file only if you decide
  4565. that its default value should change for everyone using HoTMetaL
  4566. on a specific   PC. The file sqhm.ini in the HoTMetaL directory
  4567. should be used for this purpose. 
  4568.  
  4569. 9.1.3.2. Personal file
  4570.  
  4571.   The personal configuration file should be used if you need
  4572. to override some of the settings in the base file without modifying
  4573. the base file. For example, you may want to make temporary changes
  4574. to some of the parameters, or to specify parameter values that
  4575. are used only by you (or another individual user), rather than
  4576. by everyone who uses HoTMetaL on the computer. If your PC  has
  4577. only a single user, you may choose not to use the personal file
  4578. at all. Or, you could use it only for making temporary changes
  4579. to the configuration.  The file  sqhm.ini in the Windows directory
  4580. should be used for this purpose. 
  4581.  
  4582. 9.1.4. Setting parameters in the configuration files
  4583.  
  4584. You do not need to change any configuration variables unless
  4585. you wish to customize the HoTMetaL configuration.
  4586.  
  4587. A variable is just a name that is assigned some value. You can
  4588. change these variables by simply editing the configuration files,
  4589. as appropriate, and making the desired changes. 
  4590.  
  4591. 9.1.4.1. Basic format for setting variables
  4592.  
  4593. Variables are assigned values by putting lines of the following
  4594. form in the configuration files: 
  4595.  
  4596. variable = value
  4597.  
  4598.  
  4599.  For example:
  4600.  
  4601. undo_limit=50
  4602.  
  4603.  
  4604. undo_limit is a configuration variable that specifies the number
  4605. of successive commands that can be undone or reversed with HoTMetaL's
  4606. Undo command. The default built in to HoTMetaL is 10; to raise
  4607. this to 50, you would set the variable as in the example. 
  4608.  
  4609. You may put spaces or tabs on either side of the equal sign
  4610. for readability. Also, if you prefer, you may substitute a colon
  4611. (:) for the equal sign: 
  4612.  
  4613. undo_limit:50
  4614.  
  4615.  
  4616. The effect is the same. 
  4617.  
  4618. You should not have any "white space" (spaces or tabs) at the
  4619. end of the line.
  4620.  
  4621. If you don't want to set a particular variable, then you can
  4622. do this by omitting or deleting any settings of that variable
  4623. in the configuration files. Alternatively, you can "comment
  4624. out" settings in these files by inserting the `
  4625.  
  4626. #
  4627.  
  4628. ' character as the first character on all lines containing such
  4629. settings: HoTMetaL will ignore such lines. 
  4630.  
  4631. For example:
  4632.  
  4633. #undo_limit=50
  4634.  
  4635.  
  4636. You should not try to give variables a "null" value, e.g., 
  4637.  
  4638. undo_limit=
  4639.  
  4640.  
  4641.  Or: 
  4642.  
  4643. tag_font_name=""
  4644.  
  4645.  
  4646. You should take care to use legal values for all the configuration
  4647. variables. Otherwise, HoTMetaL may behave in unexpected ways.
  4648.  
  4649. 9.1.4.2. Referencing one variable from another
  4650.  
  4651. You can use the value of one configuration variable when assigning
  4652. the value of another variable. For example:
  4653.  
  4654. my_name_is=rodney
  4655. templates_path= d:\${my_name_is}\tmplts
  4656.  
  4657.  
  4658.  The expression: 
  4659.  
  4660. ${my_name_is}
  4661.  
  4662. is equal to the current value of the configuration variable
  4663. (my_name_is) between the `{' and `}'. So this expression is
  4664. equal to `rodney'. When HoTMetaL evaluates templates_path in
  4665. the last example, it substitutes  `rodney'.  for `${my_name_is}',
  4666. so that the value of templates_path becomes `d:\rodney\tmplts'.
  4667.  HoTMetaL performs this substitution when it uses the variable,
  4668. not when it reads the configuration files at start-up.
  4669.  
  4670. You can use the same notation to cause HoTMetaL to read a DOS
  4671. environment variable. For example, you could set an environment
  4672. variable  (at the DOS prompt or in the autoexec.bat file):
  4673.  
  4674. set MY_NAME=rodney
  4675.  
  4676.  A configuration file could have the following setting:
  4677.  
  4678. templates_path= d:\${MY_NAME}\tmplts
  4679.  
  4680.  
  4681. When templates_path is evaluated, `rodney' is substituted for
  4682. `${MY_NAME}', so that the value of templates_path becomes  `d:\rodney\tmplts'.
  4683. As before, this substitution occurs when the variable is used
  4684. by HoTMetaL, not at start-up.
  4685.  
  4686. The `$' symbol is used as a special character in configuration
  4687. variables, so if you want to put a `$' in the value of an variable,
  4688. you have to represent it with `$$'.
  4689.  
  4690. 9.1.4.3. Appending and prepending to a variable
  4691.  
  4692. If a configuration variable has already been assigned a value,
  4693. you may wish to append or prepend some characters to it. For
  4694. example:
  4695.  
  4696. templates_path=c:\sqhm\tmplts;
  4697. templates_path += d:\jennifer\tmplts;
  4698.  
  4699.  
  4700. styles_path=c:\sqhm\styles;
  4701. styles_path =+ d:\jennifer\styles;
  4702.  
  4703.  
  4704. In the first example, the variable templates_path is first given
  4705. the value `c:\sqhm\tmplts;'. The `+=' in the expression 
  4706.  
  4707. templates_path += d:\jennifer\tmplts;
  4708.  
  4709.  causes `d:\jennifer\tmplts;' to be prepended to the current
  4710. value of templates_path. The value of templates_path becomes
  4711. `d:\jennifer\templates;c:\sqhm\templates;'.
  4712.  
  4713. In the second example, the variable styles_path is first given
  4714. the value `c:\sqhm\styles;'. The `=+' in the expression 
  4715.  
  4716. styles_path =+ d:\jennifer\styles;
  4717.  
  4718.  causes `d:\jennifer\styles;' to be appended to the current
  4719. value of styles_path. The value of styles_path becomes `c:\sqhm\styles;d:\jennifer\styles;'.
  4720.  
  4721. (In these examples, the semi-colon, `;', between the file names,
  4722. is not inserted automatically by HoTMetaL.)
  4723.  
  4724. If a variable does not already have a value, then assigning
  4725. it a value using `=+' or `+=' has the same effect as just assigning
  4726. a value using `='. For example, if templates_path does not currently
  4727. have a value, then 
  4728.  
  4729. templates_path+=c:\tmplts;
  4730.  
  4731. has the same effect as
  4732.  
  4733. templates_path=c:\tmplts;
  4734.  
  4735. 9.2. Control variables
  4736.  
  4737. These variables control various aspects of HoTMetaL's behavior:
  4738. save options, find and replace options, etc. Many of these variables
  4739. take values of YES or NO; please note that YES,  true, and 1
  4740. (one) are synonymous here, as are NO, false, and 0 (zero). 
  4741.  
  4742. 9.2.1. Save options
  4743.  
  4744.  The following variables allow you to choose default save options
  4745. for the  Save and Save As... commands.
  4746.  
  4747. 9.2.1.1. export_doc_type_dec
  4748.  
  4749. By default, HoTMetaL will save the document type declaration
  4750. (DOCTYPE) when it saves a file. If this variable is set to NO,
  4751. then HoTMetaL will not include the DOCTYPE with an exported
  4752. file. If it is set to YES, or if it is not set at all, then
  4753. the DOCTYPE will be saved with the file. 
  4754.  
  4755. 9.2.1.2. export_sgml_dec
  4756.  
  4757. By default, HoTMetaL will not export the SGML declaration when
  4758. it exports a file. If this variable is set to YES, then the
  4759.  SGML declaration will be exported. If it is set to NO or omitted,
  4760. then the SGML declaration is not exported. 
  4761.  
  4762. 9.2.1.3. export_add_line_breaks
  4763.  
  4764. By default, HoTMetaL will not impose any limit on the length
  4765. of a line in an saved file, i.e., it will not add any explicit
  4766. line breaks. If this variable is set to YES, HoTMetaL will add
  4767. line breaks after the number of characters specified with the
  4768. export_max_line_len variable (see below). If export_add_line_breaks
  4769. is set to NO or omitted, no line breaks will be added. 
  4770.  
  4771. 9.2.1.4. export_max_line_len
  4772.  
  4773. If export_add_line_breaks is set to YES, lines will be broken
  4774. after a certain number of characters. You can set this number
  4775. with the variable export_max_line_len or in the dialog box,
  4776. e.g., 
  4777.  
  4778. export_max_line_len=60
  4779.  
  4780.  
  4781.  If this variable is not set to any value, the default is 72
  4782. characters.
  4783.  
  4784. 9.2.1.5.  export_convert_- special_chars
  4785.  
  4786. If export_convert_special_chars is set to YES, then HoTMetaL
  4787. will convert any special characters inserted directly in your
  4788. document to SGML character references. (Special characters are
  4789. those outside the ASCII range 0-127). This will apply only to
  4790. special characters that were inserted if the file was modified
  4791. or created by another editing package: special characters that
  4792. are inserted using HoTMetaL are immediately converted into character
  4793. entity icons. Character references are supported by browsers
  4794. such as Mosaic. If the variable is omitted or set to  NO, then
  4795. special characters are not converted. 
  4796.  
  4797. 9.2.1.6. export_eol
  4798.  
  4799.  This variable lets you choose the end-of-line marker that will
  4800. be generated in your saved file. There are three choices: UNIX,
  4801. which causes the end-of-line marker to be a line feed, MSDOS,
  4802. which causes it to be a carriage return followed by a line feed,
  4803. and MAC, which sets the marker to be a carriage return. The
  4804. default value for this variable is MSDOS.  
  4805.  
  4806. 9.2.2. Find options
  4807.  
  4808.  The next group of variables allow you to control the behavior
  4809. of the commands in HoTMetaL's Find menu. You may override all
  4810. these settings from the dialog box that accompanies the Find
  4811. and Replace... command. 
  4812.  
  4813. 9.2.2.1. find_whole_words
  4814.  
  4815. By default, the Whole Words option is turned off in the Find
  4816. & Replace dialog box. If this variable is set to YES, this option
  4817. is turned on; if it is set to NO or undefined, Whole Words is
  4818. turned off in the dialog box. 
  4819.  
  4820. 9.2.2.2.  find_case_sensitive
  4821.  
  4822. By default, the Case Sensitive option is turned off in the Find
  4823. & Replace dialog box. If this variable is set to YES this option
  4824. is turned on; if it is set to NO, or undefined,  Case Sensitive
  4825. is turned off in the dialog box.
  4826.  
  4827. 9.2.2.3. find_backward
  4828.  
  4829. By default, the Backwards Search option is turned off in the
  4830. Find & Replace dialog box. If this variable is set to YES, this
  4831. option is turned on; if it is set to NO, or undefined,  Backwards
  4832. Search is turned off in the dialog box.
  4833.  
  4834. 9.2.2.4. find_wrap
  4835.  
  4836. By default, the Wrap option, which causes searches to encompass
  4837. the entire file, starting at the current position, is turned
  4838. on in the Find & Replace dialog box. If this variable is set
  4839. to NO, Wrap will be turned off. If the variable is set to YES
  4840. or not defined, wrapping will be turned on. 
  4841.  
  4842. 9.2.2.5. find_patterns
  4843.  
  4844. By default, the Find Patterns option is turned off in the Find
  4845. & Replace dialog box. If this variable is set to YES, Find Patterns
  4846. is turned on. If it is set to NO, or not defined, the Find Patterns
  4847. option is turned off. 
  4848.  
  4849. 9.2.3. Markup options
  4850.  
  4851. These variables govern aspects of the markup process.
  4852.  
  4853. 9.2.3.1. include_required_- elements
  4854.  
  4855. include_required_elements controls whether the Include Required
  4856. Elements option is turned on for the Insert Element... command.
  4857. If this variable is set to NO, the option will be turned off.
  4858. If the variable is set to YES or undefined, the option will
  4859. be on. For more information, see the section on Insert Element...
  4860. in the Markup menu chapter.
  4861.  
  4862. 9.2.3.2. prompt_for_attrs
  4863.  
  4864. This variable controls whether the Edit Attributes dialog box
  4865. will be displayed each time an element with attributes is inserted
  4866. in the document. If it is set to NO, or undefined, then users
  4867. will be prompted with this dialog only if the element being
  4868. inserted has required attributes. If the variable is set to
  4869. YES, then the user will be prompted every time an element with
  4870. attributes is inserted. 
  4871.  
  4872. 9.2.4. Display variables
  4873.  
  4874. The variables in this section pertain to HoTMetaL's screen display:
  4875. invisible characters, fonts for icons, and colors.
  4876.  
  4877. 9.2.4.1. default_font_name
  4878.  
  4879. This variable lets you choose the default font family for all
  4880. documents opened with HoTMetaL. The value of this variable should
  4881. be a font name, exactly as it appears in the Font Family drop-down
  4882. list box. For example:
  4883.  
  4884. default_font_name=Times New Roman
  4885.  
  4886. The default font family is Helvetica.
  4887.  
  4888. 9.2.4.2. default_font_size
  4889.  
  4890. This variable lets you choose the default font size for all
  4891. documents opened with HoTMetaL. The value of this variable should
  4892. be a positive number. For example:
  4893.  
  4894. default_font_size=14
  4895.  
  4896.  The default font size is 12 points.
  4897.  
  4898. 9.2.4.3. tag_font_name
  4899.  
  4900. This variable lets you choose the font used to display the element
  4901. names in the tag icons in an HoTMetaL document. The list of
  4902. available fonts is dependent on your system.  The best way to
  4903. find out which fonts you can use is to invoke HoTMetaL's Character...
  4904. command and click on the arrow next to the drop-down list box
  4905. labeled Font Family. The menu that appears contains the names
  4906. of the available fonts. The value assigned to the tag_font_name
  4907. variable should be the font name, not surrounded by quotes,
  4908. exactly as it appears in the Font Family menu. E.g., 
  4909.  
  4910. tag_font_name=Avant Garde
  4911.  
  4912.  The default font is Helvetica.
  4913.  
  4914. 9.2.4.4. tag_font_size
  4915.  
  4916. This variable lets you choose the font size used to display
  4917. the element names in the tag icons in an HoTMetaL document.
  4918. The list of available font sizes is dependent on your system.
  4919. The best way to find out which font sizes you can use is to
  4920. invoke HoTMetaL's Character... command and click on the  arrow
  4921. next to the drop-down list box labeled Font Size. The menu that
  4922. appears contains the available font sizes. The value assigned
  4923. to the tag_font_size variable should be the font size in points,
  4924. not surrounded by quotes. The default is 12 points.
  4925.  
  4926. 9.2.5. Other options
  4927.  
  4928. 9.2.5.1. html_browser
  4929.  
  4930. This variable specifies the application signature for an HTML
  4931. browser that is to be invoked by HoTMetaL's Preview command.
  4932.  
  4933.  
  4934. 9.2.5.2. publish_change_from
  4935.  
  4936. This variable specifies the text that appears in the Change
  4937. From text box  in the Publish... command's dialog box. The default
  4938. value is `file://'.
  4939.  
  4940. 9.2.5.3. publish_change_to
  4941.  
  4942. This variable specifies the text that appears in the Change
  4943. To text box  in the Publish... command's dialog box. The default
  4944. value is `http://'.
  4945.  
  4946. 9.2.5.4. show_inline_images
  4947.  
  4948. If this variable is set to TRUE, then any GIF images referred
  4949. to by  URLs in IMG elements will be displayed inline (in the
  4950. HoTMetaL document window) when a file is opened. Otherwise (if
  4951. the variable is set to FALSE or not set) such images are hidden.
  4952. You can override the show_inline_images setting using the Show/Hide
  4953. Inline Images command. This command toggles to Hide Inline Images
  4954. by default if the variable is set to TRUE, and to Show Inline
  4955. Images otherwise. 
  4956.  
  4957. 9.2.5.5. undo_limit
  4958.  
  4959. This variable sets the maximum number of commands that can be
  4960. undone with the Undo command. By default, this value is 10.
  4961. The maximum value is 65535. The minimum value is one; if you
  4962. set it to a value less than one, it will be set to one anyway.
  4963.  
  4964. 9.2.5.6. view_gif
  4965.  
  4966. This variable specifies a program that the Show Image command
  4967. will invoke to display a file whose name ends with the .gif
  4968. file extension (normally this file would be expected to be in
  4969. GIF format).
  4970.  
  4971. You can add variables of your choice of the form view_extension,
  4972. where extension is the file extension of the file you want to
  4973. display: for example, you could have view_tif, view_jpg, etc.,
  4974. variables.
  4975.  
  4976. 9.3. Location variables
  4977.  
  4978. The variables described below give the locations ofdirectories
  4979. or files that are used by HoTMetaL, and specify default file
  4980. extensions. 
  4981.  
  4982. 9.3.1. Paths and directories
  4983.  
  4984. Paths are lists of directories that HoTMetaL searches to find
  4985. files it needs to read, or uses to store files. The value of
  4986. a variable that describes a path consists of a number of directory
  4987. names, or paths, separated by semi-colons `;'. As well as giving
  4988. specific directory names, it is possible to specify HoTMetaL's
  4989. working directory by putting a period, `.', in the path. 
  4990.  
  4991. Note:  The working directory is set with the `Properties...'
  4992. command in the Microsoft Windows `File' menu. 
  4993.  
  4994. When giving a directory name (other than the working directory),
  4995. you need to give the full DOS path. This may be fully or partly
  4996. represented by a reference to another configuration or environment
  4997. variable, as explained earlier in this chapter.
  4998.  
  4999. The following example shows how to set a path variable, in this
  5000. case, export_path:
  5001.  
  5002. export_path=${SQDIR}\samples;.;c:\donald\samples
  5003.  
  5004. This setting is interpreted as follows: 
  5005.  
  5006.   +  The expression `${SQDIR}' is replaced by the name of the
  5007. HoTMetaL directory, so the expression `${SQDIR}\styles' will
  5008. cause a directory such as c:\sqhm\styles to go into the path.
  5009.  
  5010.   +   The current working directory when the program was invoked,
  5011. signified by ".", is included in the path.
  5012.  
  5013.   +   Lastly, the directory c:\donald\samples is specified explicitly.
  5014.  
  5015.  The default value for all path variables, with the exception
  5016. of templates_path, is ".".
  5017.  
  5018. 9.3.1.1. import_path
  5019.  
  5020.     This variable gives a default directory for opening files.
  5021. In the file selection dialog box that appears when you invoke
  5022. the Open... command, the Directories list box displays, by default,
  5023. the directory that is listed first with the import_path variable.
  5024.  
  5025. 9.3.1.2. export_path
  5026.  
  5027.  This variable names the default directory for saving files.
  5028. When you invoke the Export... command, the default directory
  5029. that appears in the Directories list box is the first directory
  5030. that is listed on the export_path variable. 
  5031.  
  5032. 9.3.1.3. import_path
  5033.  
  5034.  This variable gives a default directory for opening files.
  5035. In the file selection dialog box that appears when you invoke
  5036. the Open... command, the Directories list box displays, by default,
  5037. the directory that is listed first with the import_path variable.
  5038.  
  5039. 9.3.1.4. save_path
  5040.  
  5041.     This variable gives a default directory for saving new files.
  5042. In the file selection dialog box that appears when you invoke
  5043. the Save As... command, the Directories list box displays, by
  5044. default, the directory that is listed first on the save_path
  5045.  variable. By default, this variable has the same value as document_path.
  5046.  
  5047. 9.3.1.5. styles_path
  5048.  
  5049. This variable describes the styles path, a list ofdirectories
  5050. where styles files are located. These are files used by HoTMetaL
  5051. to describe the formatting for a document when it is displayed
  5052. on the screen. HoTMetaL will create a styles file for a rules
  5053. file the first time that rules file is used. It places the styles
  5054. file in the firstdirectory listed by the styles_path variable.
  5055. On subsequent uses of the rules file, HoTMetaL will look for
  5056. the styles file in thedirectories named by the variable. If
  5057. the rules file has been changed since the styles file was created,
  5058. HoTMetaL will ask you if you want to create a new styles file.
  5059.  
  5060. The format of this variable is the same as for export_path,
  5061. above. 
  5062.  
  5063. If more than one user will be running HoTMetaL on the same computer,
  5064. it is recommended that each user have his or her own styles
  5065. files, because screen formatting is frequently a matter of personal
  5066. preference. The best way to do this is for each user to maintain
  5067. a personal configuration file (see above) and put a styles_path
  5068. variable in that file). 
  5069.  
  5070. 9.3.1.6. templates_path
  5071.  
  5072.  This variable gives the directory for storing files that can
  5073. be used as document templates with the Open Template... command.
  5074.  
  5075. 9.3.2.  Files
  5076.  
  5077. These variables give the names of specific files that HoTMetaL
  5078. uses.
  5079.  
  5080. Except as noted, when giving a file name you need to give the
  5081. full DOS path. This may be fully or partly represented by a
  5082. reference to another configuration or environment variable,
  5083. as explained above.
  5084.  
  5085. 9.3.2.1. rgb_txt
  5086.  
  5087. This variable names the color map file, a file that associates
  5088. color names with the red-green-blue values required to tell
  5089. HoTMetaL how to produce the colors. The value of this variable
  5090. should be a file name. If an absolute path is prepended to the
  5091. file name, then that file is used; if the file name has a relative
  5092. path, or no path, prepended to it, then HoTMetaL looks for a
  5093. file relative to the SQDIR directory. The default value is ${SQDIR}\rgb.txt.
  5094.  
  5095.  
  5096. 9.3.3. File extensions
  5097.  
  5098. These configuration variables determine the default file extensions
  5099. that appear in the file selection dialog boxes for different
  5100. kinds of files. The file extensions appear in the Filename text
  5101. box. The file extension consists of a dot followed by a sequence
  5102. of characters (usually three). When you set a file extension,
  5103. you must include the dot in the corresponding variable's value.
  5104. E.g., 
  5105.  
  5106. dictionary_ext=.dct
  5107.  
  5108. 9.3.3.1. styles_ext
  5109.  
  5110. This variable sets the default extension for binary styles files.
  5111. When you create or open an HoTMetaL file, HoTMetaL will look
  5112. in the styles path for a styles file that has the same name
  5113. as the rules file's compiled-in system identifier, but with
  5114. the file extension replaced by the styles extension. The default
  5115. styles extension is .stl.
  5116.  
  5117. 9.4. Tracing configuration variables
  5118.  
  5119. HoTMetaL allows you to trace exactly how the configuration settings
  5120. are used. When tracing is turned on, you will be presented with
  5121. a warning box when HoTMetaL reads the configuration files, or
  5122. accesses any of the variables. Tracing is controlled by the
  5123. SQTRACE environment variable.  The possible values are ON (which
  5124. is the same as true and 1), OFF (which is the same as false
  5125. and 0) and  FULL. The variable must be set before starting up
  5126. HoTMetaL. 
  5127.  
  5128. If SQTRACE has the value ON, you are notified whenever any of
  5129. the following things happen:
  5130.  
  5131.   +  HoTMetaL reads the configuration files.
  5132.  
  5133.   +  the final value (i.e., after all configuration files have
  5134. been read) of a variable is set. Furthermore, you will be told
  5135. which of the files the value comes from.
  5136.  
  5137.   +  HoTMetaL looks for the value of a variable but does not
  5138. find it in any configuration file.
  5139.  
  5140.   +  a duplicated variable is detected. If a variable is set
  5141. in more than one configuration  file, or more than once in the
  5142. same file, you will be notified, and given the previous and
  5143. new values and which files these values came from.
  5144.  
  5145.   +  an absolute file name or path name is encountered as the
  5146. value of a variable.
  5147.  
  5148. If SQTRACE has the value OFF, or is not set, tracing will not
  5149. be invoked. 
  5150.  
  5151. 10. Appendix 1: Keyboard shortcuts
  5152.  
  5153. This appendix discusses the keyboard shortcuts for invoking
  5154. HoTMetaL commands and performing other windowing operations.
  5155.  
  5156. 10.1. Shortcuts
  5157.  
  5158. Many of the shortcuts for invoking commands involve two keys:
  5159. the Ctrl key and another key specific to the command.
  5160.  
  5161. To invoke the Open... command, for example, hold down the Ctrl
  5162. key, and then press the O key while the other key is held down.
  5163. This series of keystrokes is denoted Ctrl-O. In the menu, it
  5164. is denoted `^O'. Other shortcuts consist of a function key,
  5165. and some commands have two different shortcuts. Note that some
  5166. older keyboards may not have the F11 and F12 keys.
  5167.  
  5168. 10.2. Mnemonics
  5169.  
  5170. Like other Windows applications, HoTMetaL supports the use of
  5171. mnemonics for accessing menus and commands from the keyboard.
  5172. A mnemonic is a letter that is associated with a menu bar menu,
  5173. command, and sometimes with a dialog box control. Usually the
  5174. mnemonic will be the first letter of the menu or command name,
  5175. but in cases where more than one menu, or more than one command
  5176. within the same menu, starts with the same letter, the mnemonic
  5177. will be a subsequent letter in the name. Since the mnemonic
  5178. is always underlined, you can easily tell what it is.
  5179.  
  5180. You can bring down a menu at any time by pressing the Alt key,
  5181. and then, while Alt is still depressed, pressing the key with
  5182. the mnemonic letter. If a menu is visible, you can invoke a
  5183. command from that menu just by pressing the key with the mnemonic
  5184. letter. Some controls in file selection dialog boxes are associated
  5185. with mnemonics. When the dialog box is active, press Alt plus
  5186. the mnemonic to activate the control.
  5187.