1 Lisp Library Modules, Medley Release 1.0, HRULE 1 Lisp Library Modules, Medley Release 1.0, HRULE HRULE 1 HRULE 1 HRULE 6 HRule(HRULE NIL HRule NIL NIL 139) is a module that lets you create horizontal rules (solid horizontal lines of various thicknesses) in a TEdit(TEDIT NIL TEdit NIL NIL 139) document. Rules are often used to set off titles and page headings from regular text, and to create decorative effects. Requirements 1 IMAGEOBJ EDITBITMAP TEDIT Installation 1 Load HRULE.LCOM and the required .LCOM modules from the library. Creating Horizontal Rules(CREATING% HORIZONTAL% RULES NIL Creating% Horizontal% Rules NIL NIL 139) 1 You specify a rule's thickness in decimal fractions of a printer's point(PRINTER'S% POINT NIL printer's% point NIL NIL 139) (1/72 of an inch). To create a horizontal rule, place the caret at the point in your document where you want the rule to begin, then type Control-O(CONTROL-O (command) control-O NIL NIL 139). This will bring up a small window titled "Form to Eval" that contains a blinking caret. Type (HRULE.CREATE(HRULE.CREATE (function) NIL NIL NIL 139) N) after the caret, with N indicating the thickness of the rule. Y0A`a3LL3`L88ll For example, to create a 4-point rule you would type (HRULE.CREATE 4); to create a 2-point rule you would type (HRULE.CREATE 2.5). Then press the carriage return. The window closes, and a rule of the specified size is created, extending from the TEdit caret to the right margin of the paragraph. Note: This means that nothing can appear to the right of a rule on the same line. So, for example if you type the following paragraph This is an example of a paragraph that is about to have a horizontal rule inserted in it, to show what happens. and insert a 2-point rule after the word rule, you end up with This is an example of a paragraph that is about to have a horizontal rule2.5 inserted in it, to show what happens. Like other image objects in TEdit, a rule is a single character that can be deleted, moved, and copied like any other character. You can use the TEdit Paragraph Looks menu to change the width of a rule if you don't want it to extend to the normal right margin of your document. Stacking Several Rules in a Single Object(STACKING% SEVERAL% RULES% IN% A% SINGLE% OBJECT NIL Stacking% Several% Rules% in% a% Single% Object NIL NIL 140) 1 Sometimes, you may want to stack several rules atop one another, with space between them. This can be used to achieve effects like (0.5 0.5 0.5) and (3 1 1 1 3) To create built-up rules of this type, follow the same procedure as above, but provide a list of rule widths and spacings in place of the single rule width. The first example above was created using the form (HRULE.CREATE '(.5 .5 .5)), and the second example was created using the form (HRULE.CREATE '(3 1 1 1 3)). The first number in the list is the thickness of the topmost rule, the next number is the space below it, the third number is the next rule, and so on. Limitations 1 Theoretically, a rule can be infinitely small or infinitely large. For most documents, however, you will probably want to create rules that are between half a point and six points thick. On printers, you usually cannot tell the difference between rules that are less than point apart in thickness. Examples 1 Shown in Figure 4 are some examples of horizontal rules. In addition, you might want to look at the rules in this document, which were all created with HRule. 0.5 point rule 1 1-point rule 1.5 1-point rule 2 2-point rule 2.5 2-point rule 3 3-point rule 3.5 3-point rule 4 4-point rule 4.5 4-point rule 5 5-point rule 5.5 5-point rule 6 6-point rule Figure 4. Horizontal rules Shown in Figure 5 are some examples of built-up rules, along with what you would type to create them: (1 1 1) (HRULE.CREATE '(1 1 1)) (1 1 3) (HRULE.CREATE '(1 1 3)) (0.5 0.5 0.5 1 6) (HRULE.CREATE '(.5 .5 .5 1 6)) (2 1 2) (HRULE.CREATE '(2 1 2)) (6 1 2) (HRULE.CREATE '(6 1 2)) Figure 5. Built-up rules [This page intentionally left blank] (LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "") STARTINGPAGE# 139) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (270 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (TEXT NIL NIL (54 54 504 702) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (54 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (270 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE RECTOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL)))))22 2 2HH2llhh5Hll2HH,HH2HH 3T2HH3T2 -T-T2F PAGEHEADING VERSOHEADE PAGEHEADINGFOOTINGVE PAGEHEADINGFOOTINGRF PAGEHEADING RECTOHEAD2 HELVETICA CLASSIC CLASSIC CLASSIC TITAN CLASSICCLASSIC  HELVETICA HELVETICAMODERN MODERNMODERN?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8)) MODERNMODERN MODERN  HRULE.GETFNMODERN  /  HRULE.GETFNMODERN  0 HRULE.GETFNMODERN   HRULE.GETFNMODERN     HRULE.GETFNMODERN IM.INDEX.GETFNmIM.INDEX.GETFNz   HRULE.GETFNMODERN      HRULE.GETFNMODERN     IIM.INDEX.GETFN   HRULE.GETFNMODERN  H3IM.INDEX.GETFN+IM.INDEX.GETFNCLASSIC a )IM.INDEX.GETFN) 0 BMOBJ.GETFN3?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8))   5+R4pDI HRULE.GETFN' ) qIM.INDEX.GETFN   HRULE.GETFNMODERN   HRULE.GETFNMODERN    HRULE.GETFNMODERN   4    HRULE.GETFNMODERN  -     HRULE.GETFNMODERN   HRULE.GETFNMODERN    HRULE.GETFNMODERN    HRULE.GETFNMODERN   HRULE.GETFNMODERN    HRULE.GETFNMODERN   HRULE.GETFNMODERN    HRULE.GETFNMODERN   HRULE.GETFNMODERN    HRULE.GETFNMODERN   HRULE.GETFNMODERN    HRULE.GETFNMODERN   HRULE.GETFNMODERN   2  f HRULE.GETFNMODERN   HRULE.GETFNMODERN   HRULE.GETFNMODERN   HRULE.GETFNMODERN   HRULE.GETFNMODERN  % 'z