_____ _______ ___ PROSE Version 4.3 ____ _________ Text Formatter ___ ___ __ _____ for the HP e3000 _____ ____ ______ Prose User Manual _______ _________ __________ ____ Robelle Solutions Technology Inc. ____ ___ _______ _____ ___ 7360 137 Street, Suite 372 _______ ____ ______ ___ ___ Surrey, B.C. Canada V3R 7K1 __________ _____________ Toll-free: 1-888-ROBELLE ________________ (1-888-762-3553) ______ _____ ________ Phone: (604) 501-2001 ____ _____ ________ Fax: (604) 501-2003 _______________ www.robelle.com ___________________ support@robelle.com _______ ____ January 2000 Program and Manual Copyright Robelle Solutions Technology Inc. 1982-2007 Original CDC Version, Copyright John Strait 1978. ___ Permission is granted to reprint this document (but not for profit), provided that copyright notice is given. QEDIT and SUPRTOOL are trademarks of Robelle Solutions Technology Inc. Other product and company names mentioned herein may be the trademarks of their respective owners. 1 _______ _ _______ __ _____ Chapter 1 Welcome to Prose _ ____ ___________ _______ ü QLIB Contributed Library _ _____________ ü Documentation _ _____ _______ ü Prose Support _ ___ ________ __ _____ ü New Features of Prose Welcome to Prose -- a powerful text formatter for MPE and HP-UX. With Prose, you can format both user manuals and on-line Help. We use Prose for everything and find it flexible and reliable. Prose works somewhat like TDP and nroff; it reads a file that contains both text and commands, and produces an output document. Prose will justify, underline, hyphenate, number pages and paragraphs, format the page the way you want, and produce an index. Prose will print on the line printer or on an HP LaserJet. Prose does not have everything; it cannot do graphics, format into multiple columns, or do footnotes, superscripts, and subscripts. ____ ___________ _______ QLIB Contributed Library Prose is part of the QLIB, a small library of contributed software and other aids, for Robelle users. Any Robelle customer is authorized to use Prose at no extra charge. To browse through the other bonus tools in the QLIB, use our Select "menu" program: :run select.pub.robelle,qlib _____________ Documentation The Prose user manual describes how to access and apply Prose and has a reference chapter that describes each command. At the end of the manual, you will find an index and an appendix detailing common Prose errors. To print extra copies of this manual, use the Printdoc program: :run printdoc.pub.robelle;info="prose.qlibdoc.robelle" To view the on-line help, use the Qhelp program: :run qhelp.qlib.robelle prose.qlibhelp.robelle _______ _ _______ __ _____ 2 Chapter 1 Welcome to Prose _________ ___ ____ Variables and JCWs ___________ ________ In this manual, we use the general term "environment variable" or ________ sometimes just "variable" to refer to JCWs. If you are using MPE/iX, you must still use JCWs instead of MPE/iX variables, unless we specify otherwise. In general, numeric variables are set as JCWs, and non-numeric variables are set as MPE/iX variables. For example, if we told you to set the "outlaser" variable to 1, you would use :setjcw, not :setvar. :setjcw outlaser 1 {correct} :setvar outlaser 1 {incorrect!} However, if we told you to set the "proseincludepath" variable to ".PUB.SYS", you would use :setvar. Note that non-numeric variables are only available on MPE/iX. :setvar proseincludepath ".PUB.SYS" _____ _______ Prose Support We developed Prose in order to have a good tool for producing our documentation and to allow us to interface to our Qhelp on-line help subsystem. Internally we use LaserJet IIs, IIDs, IIIs, and 4Ps spooled and attached to our terminals and PCs, with the F92286F and F92290S2 font cartridges. We do not plan to support all possible LaserJet fonts or all varieties of LaserJet printers. For example, Prose has no built-in capabilities for scaling fonts on the LaserJet III. Our technical support department is happy to answer specific questions about Prose, but doesn't have time to give in-depth training over the telephone. Before you call for technical support, you should print a copy of the manual and read the ________ _____ Applying Prose chapter. ___ ________ __ _______ ____ New Features in Version 4.3: ü Prose formats dates with a 20xx year by truncating the century; for example, use "00" for 2000. ___ ________ __ _______ ____ New Features in Version 4.2: ü Prose no longer misses the last few lines of certain Jumbo Qedit files. _______ _ _______ __ _____ Chapter 1 Welcome to Prose 3 ___ ________ __ _______ ____ New Features in Version 4.1: ü RTF files with index entries that begin with a "K" are correctly generated. ___ ________ __ _______ ____ New Features in Version 4.0: ü Prose can read Jumbo text files greater than 256 characters wide. ___ ________ __ _______ ____ New Features in Version 3.9: ü The new Tab command allows you to format tables more conveniently. ü Prose tries to reduce the number of unnecessary font-change escape sequences. ü The new RTF option in the Output command creates Rich Text Format output. ___ ________ __ _______ ____ New Features in Version 3.8: ü Prose can read Qedit's new Jumbo files, although the maximum line length is still limited to 256 characters. 4 _______ _ _________ _____ Chapter 2 Accessing Prose _ _____ _____ ü Prose Files _ ______ _______ ü Output Devices _ _____ _____ _____ ü Extra Blank Pages _ ____ _______ _______ ü User Defined Command _ _____ __ _ ____ ____ ü Prose to a Disc File _ _____ _______ ______ ü Prose Version Number _ ______ ü MPE/iX Accessing Prose is a simple matter of two :File commands and a :Run command. _____ ____ :file infile=input file :file output=$stdlist :run prose.qlib.robelle _____ _____ Prose Files Prose accesses the following files: Infile: File containing text in Prose form (Qedit file or unnumbered EDIT/3000 file). Output: File to receive the formatted results (an ASCII file with CCTL; defaults to $Stdlist; can be sent to disc). Input: File used for the pause option of the Output command (defaults to $Stdinx). Perrfile: File where error messages are printed (defaults to $Stdlist); we recommend that this file be redirected to a temporary file (see the Prose UDC below). Prose requires the user to enter the following :File equations: _____ ____ :FILE INFILE=input file ______ ____ :FILE OUTPUT=output file ______ _______ Output Devices If your output device is a standard HP printer or a disc file (see below), your Infile needs an Output command that specifies the LPT option .output(lpt s4). _______ _ _________ _____ Chapter 2 Accessing Prose 5 ________ Terminal If you wish to format a document and print it on your screen (i.e., $stdlist), you merely leave off the File command for the Output file. This file defaults to $stdlist. You should still use the LPT option of the Output command. ________ ____ Terminal Port You may use Prose to write to a specific port, but a special :File equation must be used. If you have a printer on device 40 you would use the following File command: :FILE OUTPUT=OUTPUT,NEW;DEV=40 If you do not specify "new" on the :File equation, a prompt may appear on the operator console asking if device 40 is "ready". ________ LaserJet If your output device is a LaserJet, you will need to specify the LAS option in the Output command of your Infile document. This option gives you the ability to print on a LaserJet that is connected as a system printer. If the LaserJet is an attached (i.e., slave) printer of your logon terminal, add (r+) to the command options: .out (las s5 r+). _____ _____ _____ Extra Blank Pages Depending on the type of printer you have and how it is connected to your system, Prose may generate an extra blank page at the start or at the end of your document. These blank pages are the result of Prose doing the safest possible thing. You can instruct Prose to omit these extra pages by setting the OutSavePaper environment variable. to a non-zero value. :setjcw OutSavePaper 1 If you have a "standard" setup with your spooled line printer or LaserJet, you can try setting this variable to reduce the amount of wasted blank pages. However, setting this variable can result in the printer not being reset correctly for subsequent printouts. The following section explains the various reasons why Prose produces an extra blank page. _______ _ _________ _____ 6 Chapter 2 Accessing Prose ___ ______ LPT Output Prose does a page eject at the beginning of LPT output. Prose does not assume that your spooler or line printer will automatically eject a page at the start of each Prose output. Therefore, this initial page eject ensures that new Prose output starts at the beginning of a new page. For line printers that eject all output automatically, this results in an extra leading blank page. The OutSavePaper variable can be used to suppress this extra blank page. _______ ________ Spooled LaserJet Prose sends a form feed and a printer reset escape sequence at the end of LaserJet output. This ensures that the printer is properly reset to the default print behavior (e.g., default fonts and margins). For spooled LaserJets that eject all output automatically, this results in an extra trailing blank page. The OutSavePaper variable can be used to suppress this extra blank page provided that the following are true: 1. The spooler automatically ejects the last page of output. 2. The spooler sends an escape sequence to reset the printer at the start of every print job. The second requirement is particularly important if you have software that uses the LaserJet as a line printer (e.g., :store listings). If OutSavePaper has a non-zero value, and the spooler doesn't send the escape sequence to reset the printer, then the subsequent line printer output will be in the incorrect font. If you are using double-sided printing and you want to use the paper saving option, you need to use a ".align" command at the end of your document to ensure that the final page is printed. _____ ________ _________ Older Attached LaserJets Prose uses Record Mode to print to your attached printer. To end Record Mode, Prose has to send a final blank line after sending Record Mode Off. This blank line remains in your printer's internal buffer. If your attached printer is a LaserJet II or older, Prose's initial LaserJet printer reset will cause subsequent output to have an extra leading blank page. For LaserJets IIP and up, there is no extra leading blank page. The OutSavePaper variable cannot eliminate this blank page. _______ _ _________ _____ Chapter 2 Accessing Prose 7 ____ _______ _______ User Defined Command We suggest that you use the following UDC to invoke Prose. The UDC writes all Prose error messages to a temporary file. If there are any error messages, they are displayed on $Stdlist after Prose finishes formatting. prose parmin, parmout="$STDLIST" purge perrfile,temp build perrfile;rec=-255,8,f,ascii;cctl;& disc=2500,32,1;temp file infile=!parmin file output=!parmout file perrfile=perrfile,oldtemp setjcw jcw = 0 continue run prose.qlib.robelle if jcw <> 0 then file pstdlist=$stdlist;rec=-255;cctl fcopy from=perrfile;to=*pstdlist reset pstdlist endif reset infile reset output reset perrfile setmsg on **** To invoke this UDC, you merely specify the UDC name and the name of the Infile document. The Output file parameter is optional and defaults to $Stdlist: :prose qcommand.doc,*lp To invoke this UDC from within Qedit, use these commands: /set udc udc.catalog.robelle /prose qcommand.doc,*lp _____ __ _ ____ ____ Prose to a Disc File Here is a UDC to run Prose to a disc file. With Qedit, you can then examine the disc file (e.g., /lq plist) or examine any errors (e.g., /lq perrfile). pdisc parmin purge plist,temp build plist;rec=-256,8,f,ascii;cctl;disc=20000,32,1;temp purge perrfile,temp build perrfile;rec=-255,8,f,ascii;cctl;& disc=2500,32,1;temp file infile=!parmin file output=plist,oldtemp;dev=disc _______ _ _________ _____ 8 Chapter 2 Accessing Prose file perrfile=perrfile,oldtemp setjcw jcw = 0 continue run prose.qlib.robelle if jcw <> 0 then file pstdlist=$stdlist;rec=-255;cctl fcopy from=perrfile;to=*pstdlist reset pstdlist endif reset infile reset output reset perrfile setmsg on **** _____ _______ ______ Prose Version Number Normally, Prose does not print a version number. You can verify which version of Prose you are using by doing the following: :reset output :run prose.qlib.robelle;info="v" {if no output, then 2.4 or earlier} Prose/Robelle Solutions Technology Inc. (Version 4.3) ______ MPE/iX We distribute a native-mode version, Prosenm, and a compatibility- mode version, Prosecm. We no longer distribute an OCT version of Prose. By default, the Prose.Qlib.Robelle program file is the CM version. To install the native-mode version, do the following: :hello mgr.robelle :file robtape;dev=tape :restore *robtape;prose@.qlib :purge prose.qlib :copy prosenm.qlib,prose.qlib 9 _______ _ ________ _____ Chapter 3 Applying Prose _ _____ ü Words _ _____ ________ ü Prose Commands _ _______ __________ ü Filling Paragraphs _ _____________ ______ ü Justification Breaks _ _____ _____ ü Blank Lines _ ______ _______ ü Option Command _ _________ ___ _____ _____ ü Templates for Prose Users _ _____ ______ ___ __________ ü Using Styles for Formatting _ ________ ___ _________ _________ ü Defining the Paragraph Character _ ___ __ ___ ______ ü How to Use Undent _ _____ _____ _______ _____ ü White Space Between Words _ ________ _______ __________ ü Defining Special Characters _ _____ _____ ___ ____ ______ ü Prose Forms for Page Layout _ ____ __ _____ ü Make an Index _ ____ _ _____ __ ________ ü Make a Table of Contents _ ________ ____ ________ ü Checking Your Commands _____ Words _____ _____ __________ Prose works with words, lines, and paragraphs. Prose defines a word as any non-blank string of characters, with a blank on either side. For the purposes of formatting, a punctuation character is part of the word it adjoins. These are words: A word character, adjoins. _____ ________ Prose Commands Prose is always looking for words to turn into lines and paragraphs. You control and direct Prose in this work by inserting commands into your text. A command is indicated by a period character in column one, followed by a command name: .output(lpt s4) You use the commands to control the format of your pages, to center lines, to right-justify lines, to print with even left margin but ragged right margin, or to print tables and charts "as-is". _______ _ ________ _____ 10 Chapter 3 Applying Prose _______ __________ Filling Paragraphs Normally, Prose reformats its input by filling words into lines, adding blanks to justify the lines to left and right margins, and printing lines together to make paragraphs. In filling lines, Prose ignores the original positions of the words. Instead, it fills as many words as possible into the output lines, preserving _________ the original order. The resulting lines are justified: they have a straight left and right margin. For example, if you typed the following text into a file and fed that file into Prose as the Infile, you would get the output shown further below. _____ __ ______ Input to Prose: What is the status of the Q-Mit directory-expansion problem? There are several site-specific patches available, but no general solution has been found yet. Therefore, do not expand your directory without talking to your SE first. What about Business Basic? Third quarter next year, compiler and interpreter, only on the HP e3000 (not the 9000 or 1000). Basic/3000 will be maintained for a long time, but not enhanced. ______ ____ ______ Output from Prose: 20 Mar 94 What is the status of the Q-Mit directory-expansion problem? There are several site-specific patches available, but no general solution has been found yet. Therefore, do not expand your directory without talking to your SE first. What about Business Basic? Third quarter next year, compiler and interpreter, only on the HP e3000 (not the 9000 or 1000). Basic/3000 will be maintained for a long time, but not enhanced. - 1 - The example above has two paragraphs. When Prose detects the start of a new paragraph, it prints out the last line of the current paragraph and starts gathering words for a new paragraph. There are several ways to indicate the start of a new paragraph. The example above uses two of them: indenting the first line of the paragraph and inserting a blank line between the paragraphs. The page number (-1-) at the end of the output and the date at the top are part of the "default" Prose Form. You can easily replace the date with your own Title or print the page number on the left _______ _ ________ _____ Chapter 3 Applying Prose 11 if you like. We will suggest some useful Forms shortly. _______ ___ ______ ___ ___ _____ Warning for Galley and TDP Users ______ Since indenting a line in Prose always indicates a new paragraph, you cannot indent an entire paragraph by indenting the first two lines of the paragraph. You must use the Margin command to shift the margin left temporarily and then reset it again after the paragraph. _____________ ______ Justification Breaks The break between one paragraph and the next is called a _____________ _____ justification break. It causes Prose to stop filling the current _____ output line, and print it without justifying. Since the break is one of the most frequently used instructions, as well as one of the simplest, it can be indicated in many ways. As shown above, you can indicate paragraphs by inserting one or more blank lines or by indenting the first line of a paragraph with blanks. If you don't want a blank line and you don't want the first line indented, you can insert a Prose Break command instead. If you have many paragraphs to enter, you can define a special paragraph character that indicates a new paragraph when used in column one. You also get a justification break when you use any command that affects filling and justifying (e.g., Output, Margin, Form, etc.). The following example demonstrates the first three methods for specifying a justification break. _____ __ ______ Input to Prose: Why is the price of disc-caching upgrades so high? The price is for "value received", not for the cost of the. product. Disc caching plus extra memory doubles the speed of the machine, so it is worth more money. When will Mighty Mouse roar and how will he sound? HP has stopped pre-announcing products. Mighty Mouse, the low-end HP e3000, will not be announced until the field has been trained on it, the demo units have been built and shipped to the offices, and some working inventory is in stock. .break.skip 1 When will we see improvements in spooling? A new "office" spooler will be released soon and it will support plotters. Can I add a third IMB to my Series 64 without waiting for MPE V? Yes, in some cases. It depends upon your configuration. _______ _ ________ _____ 12 Chapter 3 Applying Prose ______ ____ ______ Output from Prose: Why is the price of disc-caching upgrades so high? The price is for "value received", not for the cost of the product. Disc caching plus extra memory doubles the speed of the machine, so it is worth more money. When will Mighty Mouse roar and how will he sound? HP has stopped pre-announcing products. Mighty Mouse, the low-end HP e3000, will not be announced until the field has been trained on it, the demo units have been built and shipped to the offices, and some working inventory is in stock. When will we see improvements in spooling? A new "office" spooler will be released soon and it will support plotters. Can I add a third IMB to my Series 64 without waiting for MPE V? Yes, in some cases. It depends upon your configuration. When you use one of these methods to create a paragraph, Prose ____ does only a justification break. Prose does not skip lines or indent unless blank lines or indentation explicitly appear on the input file. There is a way to do fancier things by using the Paragraph command, but that will be introduced later. _____ _____ Blank Lines There are two common ways to explicitly generate a blank line in Prose. The first is to use a blank line in the input file, and the second is to use the Skip command. The difference between the two is that a Skip command does not result in a blank line when you are at the top of a page. We call the first type of blank line a "hard" blank line, and the second type a "soft" blank line. To make a file readable, you usually separate paragraphs with a blank line instead of using .skip 1 or the paragraph character. This is a short paragraph. A blank line separates these paragraphs. .skip 1 A Skip command separates these paragraphs. `A paragraph character separates these paragraphs. Of course, the paragraphs separated by a blank line have the best visual appearance. However, when the first paragraph ends at the bottom of a page, the following blank line will appear at the top of the next page. You can overcome this by using the .opt(b+) command, which tells Prose to treat every blank line as a soft blank line (i.e., like a .skip 1). .opt(b+) This is a short paragraph. _______ _ ________ _____ Chapter 3 Applying Prose 13 The blank line above will not appear at the top of the next page. Once this option is in effect, you need to use the Jump command when you do want blank lines at the top of a page. The Jump command is like the Skip command except that it always generates hard blank lines. .page .jump 3 This Heading is three lines down from the top of the page. ______ _______ Option Command By default, Prose makes both margins even. This formatting option is explicitly selected by inserting an Option command in the text at the point where you want to start having paragraphs with even left and right margins. .option (l+ r+ f+) L+ means "left margin even", R+ means "right margin even" and F+ means "fill words to make complete lines". By using combinations of L, R, and F, you can achieve different line justification styles. ______ _____ _______ Ragged Right Margins One common formatting style is to have the left margin even, but the right margin uneven. This is commonly called a ragged right margin. To format lines this way, insert this command in your text: .option (l+ r- f+) You can interpret this as "justify the left margin, don't justify the right margin, and move words from line to line to make complete lines". .option (l+ r- f+) This is an example of filling lines but the right margin will be ragged. _________ _____ Centering Lines To begin centering lines, you insert this command in your text: .option (l- r- f-) You can interpret this as "do not justify the left margin, and don't justify the right margin either, and don't even move words _______ _ ________ _____ 14 Chapter 3 Applying Prose from line to line to make complete lines". In other words, "center each line that follows". You revert to formatting paragraphs by inserting an Option command _______ ___ __________ without any parameters: .option (l- r- f-) The Decline and Fall of the Stand-Alone Word Processor By Ralph Micropro .option ________________ _____ Right-Justifying Lines A slightly different Option command (L- R+ F-) tells Prose to right-justify some lines. This is useful for putting an address at the right-hand side of a page. After the lines to be right-justified, switch back to formatting paragraphs with a parameterless Option command. .option (l- r+ f-) Robelle Solutions Technology Inc. 15399-102A Ave. Surrey, B.C. .option The three lines above will be printed flush to the right margin. ________ ______ ___ ______ Printing Charts and Tables When you insert a chart or a table in a document, you do not want it formatted into a paragraph. You have inserted just the number of blanks necessary to make the columns line up nicely. There are two ways you can tell Prose to stop making paragraphs and just print what it reads. The first way is to indent every line of the table by at least one space. The second way is to use the Option command (F-): .option (f-) Product Function Price Service ZLABEL printer $600 $120/year ZPOSTAGE compute $500 $100/year ZSTUFF manipulate $900 $180/year .option _______ _ ________ _____ Chapter 3 Applying Prose 15 _________ ___ _____ _____ Templates for Prose Users At Robelle, we use Prose for all of our documents, including manuals, help files, letters, articles, news memos, and papers. Although we find Prose powerful and easy to use, we understand that the flexibility and options of Prose may be daunting to many ________ new users. Therefore, we have created two template files to get you started. These templates make all the choices for you and set up an environment. The two templates are: Manuals.Qlibdata.Robelle {for printing manuals} Letters.Qlibdata.Robelle {for business letters} ________ ___ _______ Template for Manuals If you go into Qedit and list the MANUALS template, you should see the following lines of text: :run qedit.pub.robelle /lq manuals.qlibdata.robelle .comment Filename:___________________ Revision:_________ .comment .comment Purpose:_______________________________________ .comment .comment To print this document, use these commands: .comment .comment :file infile=filename .comment :file output;dev=lp .comment :run prose.qlib.robelle .comment .if outlpt . if outrecord . out(lpt s7 r+).mar(r65).com For attached printer . else . out(lpt s7 r-).mar(r65).com For LP, $stdlist, disc. . endif .elseif outhelpcomp . out(lpt q+).mar(r78).com For helpcomp;parm=1 .elseif outlaser . if outrecord . if outdouble . out(las 30 s8 r+ d+).mar(r65).com attach-LJ duplex . else . out(las 30 s8 r+).mar(r65).com attached LaserJet . endif . else . if outdouble . out(las 30 s8 r- d+).mar(r65).com LaserJet, duplex . else _______ _ ________ _____ 16 Chapter 3 Applying Prose . out(las 30 s8 r-).mar(r65).com LaserJet . endif . endif .else.com no outxxx jcws specified . out(lpt s7 r-).mar(r65).com generic: LP/stdlist/disc .endif .include .include .com If this document has an index, entries are created .com via .inx . The printing of the index occurs .com when you insert this command: .com sortindex (c+ f. m14 p48 l0 r0) .par(f` p5 s1 u3).comment Automatic .skip 1.page 5.undent 3 .opt(j4).comment Okay to insert 3 spaces between words. .inp(u~ b@ h\ e& f| t#).com Special chars in the text. .com The FORM that follows is for the Title page: .for([ // l55 //]).comment Unnumbered pages .com The FORM that follows is for Contents/Preface: .page.for([ // l55 / #33 pr:3 /]).com roman numerals .com The FORM that follows is for the body of the manual: .for([ T #26 S:40 // l55 / #33 "-" pn:1 "-" /] + [ S #26 T:40 // l55 / #33 "-" pn:1 "-" /]) .page.count 1.com Start page numbering over again. .com .com The last line in a manual should be .check, which .com catches any dangling commands. If you don't have .com a table of contents, use C0 instead of C1. .com .com If you include the Styles file, do not use .check .com .com.check(c1 f0 i1 m1 o1 p1 j0) _____ _________ Using Templates To use this template, you Text a copy of it into Qedit, add your text and Prose commands, and then print the results using Prose. For example, let's add in the same two paragraphs that we did at the start of this chapter and see what the results look like: :run qedit.pub.robelle /text manuals.qlibdata.robelle /aq last What is the status of the Q-Mit directory-expansion problem? There are several site-specific patches available, but no general solution has been found yet. Therefore, do not expand your directory without talking to your SE first. What about Business Basic? Third quarter next year, compiler and interpreter, only on the HP e3000 (not the 9000 or 1000). Basic/3000 will be maintained for _______ _ ________ _____ Chapter 3 Applying Prose 17 a long time, but not enhanced. // {this stops the ADD command} /set udc udc.catalog.robelle /prose * What is the status of the Q-Mit directory-expansion problem? There are several site-specific patches available, but no general solution has been found yet. Therefore, do not expand your directory without talking to your SE first. What about Business Basic? Third quarter next year, compiler and interpreter, only on the HP e3000 (not the 9000 or 1000). Basic/3000 will be maintained for a long time, but not enhanced. - 1 - The main difference between these results and the ones we obtained without the template is the lack of the date at the top of the page. That is because we have used the Form command to replace the date with running Titles and Subtitles on each page. To invoke them, we add two commands before our text: /add 50.1 50.1 .SUBTITLE Management Roundtable 50.2 .TITLE Edinburgh, Scotland 50.3 // /prose * Edinburgh, Scotland Management Roundtable What is the status of the Q-Mit directory-expansion problem? There are several site-specific patches available, but no general solution has been found yet. Therefore, do not expand your directory without taking to your SE first. What about Business Basic? Third quarter next year, compiler and interpreter, only on the HP e3000 (not the 9000 or 1000). Basic/3000 will be maintained for a long time, but not enhanced. -1- Each of the Prose features used in the MANUALS template is described below. _______ _ ________ _____ 18 Chapter 3 Applying Prose _____ ________ __ _______ ________ Using Comments to Explain Document Text in the template and list the first ten lines: /text manuals.qlibdata.robelle /list 1/10 1 .comment Filename:___________________ Revision:_______ 2 .comment 3 .comment Purpose:_____________________________________ 4 .comment 5 .comment To print this document, use these commands: 6 .comment 7 .comment :file infile=filename 8 .comment :file output;dev=lp 9 .comment :run prose.qlib.robelle 10 .comment These lines are just comments. They are ignored by Prose, but identify the document and give instructions on how to obtain a copy of the manual. Anyone listing the first few lines of the file knows what the file is for and how to print it out. You should Modify 1/3 to identify your document: .comment Filename: Newplant.kathy____ Revision:_25 Mar94 .comment .comment Purpose:_____Feasibility study for Ohio Plant ________ ____ ______ ______ Defining Your Output Device Lines 11 through 36 of the MANUALS template contain a set of commands to define the type of output device you plan to send your document to. .if outlpt . if outrecord . out(lpt s7 r+).mar(r65).com For attached printer . else . out(lpt s7 r-).mar(r65).com For LP/stdlist/disc file. . endif .elseif outhelpcomp . out(lpt q+).mar(r78).opt(j4).com For helpcomp;parm=1 .elseif outlaser . if outrecord . if outdouble . out(las 30 s8 r+ d+).mar(r65).com attach-Laser-duplex . else . out(las 30 s8 r+).mar(r65).com For attached LaserJet . endif . else . if outdouble . out(las 30 s8 r- d+).mar(r65).com LaserJet, duplex . else _______ _ ________ _____ Chapter 3 Applying Prose 19 . out(las 30 s8 r-).mar(r65).com For LaserJet . endif . endif .else.com no outxxx jcws specified . out(lpt s7 r-).mar(r65).com generic: LP/stdlist/disc file .endif .include Although there seem to be very many commands, there are really only two types of commands: Out commands and If-related commands (If, Elseif, Else, Endif). The If commands are used to select the one Out command that is right for your output. You tell Prose what sort of output you need by setting some standard environment variables. These variables are either true (set to non-zero values) or false (set to zero, or the variable doesn't exist). The very last Out command, Out(LPT s7 r-), is the one Prose chooses if all the device-type variables are false (outlpt, outlaser, outhelpcomp). This sets the output device to LPT, which is the most common selection for the Output command. LPT works for output to most HP printers, most HP terminals, and for output to a disc file. You can also specify LPT output by setting the ______ outlpt variable to 1. If you are generating output for a Qhelp help file, you would set ___________ the outhelpcomp variable to 1, which will cause Prose to select the Out(LPT Q+) command. If your final destination is an HP LaserJet printer, you would set ________ the outlaser variable to 1, which will cause Prose to select one of the Out(LAS) commands. If your LaserJet can produce duplex (doubled-sided) output, you can have your output doubled-sided by _________ setting the outdouble variable to 1. This will cause Prose to select one of the Out(LAS) commands with a D+ option. If you plan to use one of the optional plug-in font cartridges, you would edit the Include command to include the proper font description file: .include f92286a.qlibdata.robelle See the Qlibdata group of the ROBELLE account for the font cartridges that we support (each file describes itself if you List it with Qedit). If your printer is connected directly to your terminal, you should _________ set the outrecord variable to 1. This tells Prose to select Record Mode to access your printer, using the R+ option of the Out command. If you are switching between your screen and the LaserJet for output, you will need to switch between the LPT and LAS output. You do this by first setting outlaser=1. When you want screen output, you would set outlpt=1; when you want LaserJet output, you would set outlpt=0. However, you will not need to comment out the Include command each time you switch to LPT; Prose will translate _______ _ ________ _____ 20 Chapter 3 Applying Prose the special fonts into underlines when it prints to LPT. Notice that each of the Output commands also selects a right margin, ".mar(r65)." The default right margin in Prose is at column 70, but we change it to column 65 for two reasons. The first reason is to make the output look better when printed on international A4 paper (which is narrower than 8-1/2 by 11 paper). The second and more compelling reason is that when you switch between the LaserJet and the line printer, you will find that 65-column output is easier to read with the proportional fonts of the LaserJet. _____ ________ _________ Prose Template Variables Printing your documents with Prose will be easier if you use UDCs or command files to define our standard variables. Before running Prose, set up several command files for your various printers or Prose tasks. The following table lists the meanings of the variables used by our templates. Variable Meaning outlpt device: non-LaserJet printer, disc file outhelpcomp device: disc file for Qhelp outlaser device: LaserJet printer outrecord attached printer outdouble doubled-sided pages on LaserJet Note that the device type variables (outlpt, outhelpcomp, outlaser) are treated as being mutually exclusive in the template. That is, only one of them should be true at a time. If more than one are true, then they have the following order of precedence: outlpt, outhelpcomp, outlaser. For example, if both outlpt and outlaser are true, then outlpt will be used. If you have several types of output, it is important to reset some of those variables when you change output devices. The outdouble variable applies only to LaserJet output; it has no effect on line printer or helpcomp output. The outrecord variable applies only to LaserJet and line printer output. In addition to these five variables, you can define your own variables and use them in Prose to control the formatting or the text used in your document. ________ ___ ________ _______ Template for Business Letters In addition to the MANUALS template, we also provide a LETTERS template for writing business letters. To use this template, first make a customized copy of the template in your own group. Then, whenever you need to write a letter, Text a copy of your _______ _ ________ _____ Chapter 3 Applying Prose 21 custom template and insert the salutation and message. This _____ ______ ___ __________ template uses Style commands (see Using Styles for Formatting). .comment Template for writing 1 or 2 page business letters .comment /t letters.qlibdata.robelle .comment /Modify % .comment /Delete 8 {for a one-page letter} .comment /prose *,*lp {with a UDC} .comment .form ([// l55 / + #61 ".../2" + /]).comment Format of page one .comment .if outlpt . if outrecord . out(lpt s7 r+).mar(r65).com For attached printer . else . out(lpt s7 r-).mar(r65).com For LP, $stdlist, disc . endif .elseif outhelpcomp . out(lpt q+).mar(r78).com For helpcomp;parm=1 .elseif outlaser . if outrecord . if outdouble . out(las 30 s8 r+ d+ c1).mar(r65).com attach Las-dup . else . out(las 30 s8 r+ c1).mar(r65).com attached Laser . endif . else . if outdouble . out(las 30 s8 r- d+ c1).mar(r65).com Laser duplex . else . out(las 30 s8 r- c1).mar(r65).com For LaserJet . endif . endif .else.com no outxxx jcws specified . out(lpt s7 r-).mar(r65).com generic: LP/stdlist/disc .endif .include .include .style right Acme Consulting Co. 9999 Main Street Midvale, Ohio 33333 Phone: (301) 908-6633 %month xx, 1994 .subtitle %month xx, 1994 .style left .title %who this letter is to _______ _ ________ _____ 22 Chapter 3 Applying Prose %Company name Attention: %who this letter is to %Street address %City, state address %postal or zip code .form ([t #33 "-" pn:1 "-" #36 s:30 // l55 //]) .style body Dear %Sir: `Enter %paragraph one here `Enter %paragraph two here `Enter %paragraph three here .comment and so on.... .margin(l+26).style left Sincerely yours, .skip 4 Kathy Marshall Sales Manager .margin ___________ ___ ________ Customizing the Template To customize our template letter for yourself, change the name and address to your own: :run qedit.pub.robelle /text letters.qlibdata.robelle /modify 40/44 {replace with your company address} /modify last-2/ {replace with your name and title} /keep letters {save in your group} /exit _______ _ ______ Writing a Letter You are now ready to write a letter. The idea is very simple. You Text a copy of your customized LETTERS template into Qeditscr. You modify all of the lines containing a percent sign (%). This includes the person to whom you are writing, the date, and the first line of each of three paragraphs (your outline). Be sure to remove the % signs and the "prompting" hints that come after them -- they don't belong in your final letter! Use the Add and Modify commands to flesh out your paragraphs, or add or delete text. There is no need to separate the paragraphs with a blank line - just start each one with the paragraph ________ ___ _________ _________ indicator. See Defining the Paragraph Character in this chapter. Then, print a copy on your screen with Prose. If you like the _______ _ ________ _____ Chapter 3 Applying Prose 23 results, check to see if your letter fits on one page. If so, delete line 8 - this removes the ".../2" from the bottom of the first page. Now print your final copy on the line printer. :run qedit.pub.robelle /text letters {your copy, not the master} /modify "%" {all lines needing changes} /add {add paragraph text... } /set udc udc.catalog.robelle /prose * {print on the screen} /delete 8 {if only one page} /:file print;dev=lp /prose *,*print {print final copy} Below is a completed letter, both the input and the output: _____ __ ______ Input to Prose: .comment Template for writing 1 or 2 page business letters .comment /t letters.qlibdata.robelle .comment /Modify % .comment /Delete 8 {for a one-page letter} .comment /prose *,*lp {with a UDC} .comment .form([// l55 / + #61 ".../2" + /]).comment Format of page one .comment .if outlpt . if outrecord . out(lpt s7 r+).mar(r65).com For attached printer . else . out(lpt s7 r-).mar(r65).com LP, $stdlist, disc file. . endif .elseif outhelpcomp . out(lpt q+).mar(r78).opt(j4).com For helpcomp;parm=1 .elseif outlaser . if outrecord . if outdouble . out(las 30 s8 r+ d+).mar(r65).com attach-Las-duplex . else . out(las 30 s8 r+).mar(r65).com attached LaserJet . endif . else . if outdouble . out(las 30 s8 r- d+).mar(r65).com LaserJet, duplex . else . out(las 30 s8 r-).mar(r65).com For LaserJet . endif . endif .else.com no outxxx jcws specified . out(lpt s7 r-).mar(r65).com generic: LP/stdlist/disc .endif .com.include _______ _ ________ _____ 24 Chapter 3 Applying Prose .margin(r65) .paragraph(f` p5 s1).com ` starts new paragraph .inp(u~ b@ h\ e& f| t#).com Spec chars in the text. & .option(l- r+ f-).comment right-justify Robelle Solutions Technology Inc. 7360 137 Street, Suite 372 Surrey, B.C. Canada V3R 7K1 Phone: (604) 501-2001 Fax: (604) 501-2003 & August 20, 1994 .subtitle August 20, 1994 .option.comment turn off right-justify & & .option(l+ r- f-).com do not format address into paragraph .title Jim Abercromby Tidewater Tool and Die Attention: Jim Abercromby 100 East Main Street Somewhere, California 91003 .option.com reset to formatting .form([t #33 "-" pn:1 "-" #36 s:30 // l55 //]) & & Dear Sir: `Thank you for inquiring about our Qedit product. I am sending you a user manual and a Quick Reference Guide, as well as a description of our text formatter, Prose. `If you would like a demonstration tape, without charge, simply call our office. One will be sent to you by air mail, special delivery. If you have the time to evaluate the software, the least we can do is provide a tape. .comment and so on.... & .margin(l+26).option(l+ r- f-) Sincerely yours, .skip 4 Robert Green C.E.O. .margin.option.com reset ______ ____ ______ Output from Prose: Robelle Solutions Technology Inc. 7360 137 Street, Suite 372 Surrey, B.C. Canada V3A 4P9 Phone: (604) 501-2001 Fax: (604) 501-2003 August 20, 1994 _______ _ ________ _____ Chapter 3 Applying Prose 25 Tidewater Tool and Die Attention: Jim Abercromby 100 East Main Street Somewhere, California 91003 Dear Sir: Thank you for inquiring about our Qedit product. I am sending you a user manual and a Quick Reference Guide, as well as a description of our text formatter, Prose. If you would like a demonstration tape, without charge, simply call our office. One will be sent to you by air mail, special delivery. If you have the time to evaluate the software, the least we can do is provide a tape. Sincerely yours, Robert Green C.E.O. _____ ______ ___ __________ Using Styles for Formatting There are two ways of specifying format options in Prose. One way is to use Prose commands such as Margin, Option, and Paragraph. Another way, introduced in Prose 3.5, is to use the Style command. .include styles.qlibdata.robelle A style is a collection of format settings that have been given a name. For example, you can define a style called "chapter" that puts text in a bold font and centers them. Styles provide an easy way to specify frequently used formats in your document. .inc styles.qlibdata.robelle .style head1 `New Chapter Heading .style head3 `First Topic .style body The lazy dogs over the brown quick fox jumped. .style bullet1 `*This is a bullet list We provide some predefined styles in the file Styles.Qlibdata. Robelle. Use the Include command to access this file, which is in _______ _ ________ _____ 26 Chapter 3 Applying Prose ________ ___ the Qlibdata group of the Robelle account (see Template for _______ Manuals in this chapter). The following is a description of the styles available in that file. _____ ___________ Style Description body Justified and filled Times Roman. This is for body text, and is the style most of your document will be in. body2 Similar to Body style, but the text is not justified nor filled. This is useful for tables, addresses, and simple lists. head1 Centered, Helvetica heading. head2 Left-justified, Helvetica heading. head3 Left-justified, bold Times Roman heading. head4 Left-justified, italic Times Roman heading. bullet1 Bullet lists that do not have automatic skip between entries. bullet2 Bullet lists that have an automatic skip between entries. bullet3 Numbered bullet lists with automatic skip. example Courier font examples in manuals. Need to manually indent. address For right-justified addresses. Styles are less flexible than other Prose formatting commands, but they are more readable. To get started with styles, you can use styles in your documents whenever you can, and use other Prose commands when you need more specific formatting. ________ ___ _________ _________ Defining the Paragraph Character .par(f` p5 s1 u3).com Automatic .skip 1.page 5.undent 3 The ".par" in this line is short for the Paragraph command. With this command you can define a single keystroke (f` defines the ` key as your special key) to mean an entire cluster of actions (p5 s1 u3). This is the open single quote key (`), not the close single quote key ('), although they may print the same! Whenever Prose sees the ` key in column one of a line, it will do "p5 s1 u3". How do you decode "p5 s1 u3"? p5 skip to a new page if there is not room for 5 lines s1 skip one line ____ ___ ____ u3 shift this one line left 3 columns _______ (does nothing if you are already in column one) By putting the ` key at the start of each paragraph, you can _______ _ ________ _____ Chapter 3 Applying Prose 27 ensure that each paragraph is preceded by a blank line and that it does not start too close to the bottom of the page. `The proposal to build a new catalytic cracking plant in Ohio has been extensively studied. At Robelle, we tend to use the Paragraph key to mark headings within the text, rather than paragraphs, but the choice is up to you. For example, `Using the Paragraph Command The Paragraph command is one of the most useful functions of Prose. The "u3" code means "Undent 3". Undent is easy to use, but difficult to explain. This paragraph that you are reading appears with the left margin moved in 3 spaces, because it is preceded by a ".margin (l+3)" command and followed by a ".margin" command to reset the margin. However, ___ the first line of the paragraph is not indented three spaces - ________ it has been undented 3 spaces from the left margin by the paragraph indicator. ___ __ ___ ______ How to Use Undent Undent is also called hanging indent. The place where you will find auto-undent most useful is in presenting a list of points: Reasons for Selecting Ohio: .margin (l+3) `1.@Cheap land. Prime industrial sites are available at one-half to one-tenth the rate in our present location. `2.@Well-trained workforce. There are many high school and University graduates to draw upon in staffing the plant. `3.@Proximity to markets. The new plant would be closer to our prime customers in the midwest. .margin We start a hanging indent by increasing the left margin by the same amount as the undent. In the text above, each reason for selecting Ohio begins with the ` key and a point number (1.), followed by an at-sign (@). The @ is defined elsewhere in the _____ template file to be a blank and will be described in a moment. The results would be: _______ _ ________ _____ 28 Chapter 3 Applying Prose Reasons for Selecting Ohio: 1. Cheap land. Prime industrial sites are available at one-half to one-tenth the rate in our present location. 2. Well-trained workforce. There are many high school and University graduates to draw upon in staffing the plant. 3. Proximity to markets. The new plant would be closer to our prime customers in the midwest. Notice that there is a blank line to set off each point. Also note how the indented margins of the points line up and the point ________ numbers are undented to the left. _____ _____ _______ _____ White Space Between Words When Prose justifies lines to make the right margin straight, it does so by inserting spaces between words. The more spaces Prose inserts, the less readable the results. The fewer spaces Prose is allowed to insert, the more times you have to tell it how to hyphenate words. .opt(j4).com Okay to insert 3 spaces between words. This line from the template file is an Option command. The J4 option tells Prose how much white space it may insert to achieve justification. The default setting is Option (J3), which authorizes Prose to insert 2 spaces between every word in a line, but not 3. We suggest J4, especially for rough drafts, because it reduces drastically the number of "hyphenation needed" error ________ _ messages (see Appendix A). ________ _______ __________ Defining Special Characters To tell Prose when to do special things to words, such as underlining them, you first define some characters with special meanings via the Input command: .inp(u~ b@ h\ e& f| t#).com Special chars in text This Input command defines the following special characters for Prose: ~ tilde underline @ at-sign explicit blank \ back slash hyphenation point & ampersand escape character | up bars font change # cross hatch tab character After you have defined these characters with the Input command, _______ _ ________ _____ Chapter 3 Applying Prose 29 placing them in your text triggers Prose to process your text in a ______ special way. Although the characters appear in the input text, you won't see them in the output document (unless you use "&" to force one of them to appear). Instead, you will see the special effects these characters provide. You can define different special characters for these effects if you like, but try to stick to a consistent set of choices. ___________ _____ Underlining Words The easiest of these to understand is the tilde "~" character. Any phrase surrounded by tilde characters will be underlined. For example, if the following is input to Prose ~Prose Tips~ the output will be _____ ____ Prose Tips Notice that the tilde characters have disappeared, making the output line look as if it has been shifted one space to the left relative to the input line. ________ ______ Explicit Blanks The "at-sign" (@) character specifies an "explicit" blank. By ___ default, Prose converts one space after a period into two spaces. This is usually desirable, but when specifying a person's name we want only one space between the initials. Consider the following input to Prose: Mr. David J. Greer Mr.@David J.@Greer and the resulting output: Mr. David J. Greer Mr. David J. Greer The second example has only one space between "Mr." and "David", and one space between "J." and "Greer", rather than two spaces. _____ Hint: you can also disable the "two spaces" option using this command: .option (p-). You can also have no space after a period (e.g., D.J.Greer). Another use for @ is in setting up a list of points. See the example shown above in discussing Undent. _______ _ ________ _____ 30 Chapter 3 Applying Prose ___________ _____ Hyphenating Words The "back-slash" character is used to tell Prose where the syllables of a word occur. Normally, you do not use this character until Prose gives you a "hyphenation error". When this occurs, Prose is trying to insert too many spaces in a line. If you indicate the syllables of the specified word by inserting a back slash into your input text, Prose will produce output with fewer spaces between each word. The "backslash" character is used to tell Prose where the syl\lables of a word occur. Normally, you do not use this char\acter until Prose gives you a hyphena\tion error When this occurs, Prose is trying to insert too many spaces in a line. In the example input above, hyphenation points have been specified in the words 'syllables', 'character', and 'hyphenation'. It is okay to specify hyphenation points that Prose does not need; Prose ___ will remove all of the back slashes from the final output. ______ _________ Escape Character Since Prose removes all hyphenation characters "\" from the final document, how did we print a back slash in this sentence? The secret is the escape character, &. Whenever this character ____ occurs in the input text, it tells Prose to treat the next character as a regular text character, rather than a special command character. So, to print a back slash, you type "&\". And to print an ampersand, you type "&&". _________ _____ ___________ Different Fonts (Typefaces) If your printer is able to print special fonts, such as italics or _ bold, you use the font character, |, to enclose the text which is to be printed in them. This topic is discussed in greater detail ___ __ ________ ____ _______ in the chapter The HP LaserJet. Also see the Font Command in the _____ ________ Prose Commands chapter. ______ __ ______ ____ ____ Lining Up Tables With Tabs With all of these special characters that Prose removes from your final document, it can be difficult to make information in tables line up in the correct columns. For example, ~command~ any MPE command :PDISC user defined command =5*812 calculator command _______ _ ________ _____ Chapter 3 Applying Prose 31 This input would be printed as: _______ command any MPE command :PDISC user defined command =5*812 calculator command Again, the Robelle template file for Prose comes to your rescue. We have defined # (cross hatch) as a tab character. You can line up text in columns by inserting tab jumps in your input text: ~command~ #13any MPE command :PDISC #13user defined command =5*812 #13calculator command If you use the Tab command, you can define the tab position just once. .tab(13) ~command~ #any MPE command :PDISC #user defined command =5*812 #calculator command .tab ________ ____ Relative Tabs The number used after the tab character specifies the absolute column where the text will start. There are instances, however, where you will want to specify the column number relative to the left margin. In the previous example, the data in the second column starts at column 13. To indent the entire table to the right by 15 columns, you might think that you could simply surround the table by a ".mar(l+15)" at the beginning, and a ".mar" at the end. However, you can never tab to a column that you are already past. In this case, since the left margin is now at 15, you cannot tab to any column that is less than 15 (i.e., 13). You can overcome this problem by using relative tabs. .mar(l+15) ~command~ #+13any MPE command :PDISC #+13user defined command =5*812 #+13calculator command .mar The tab "+13" now tabs to absolute column 28 (left margin 15 plus relative tab 13). If you decide to increase or decrease the indentation of the table by adjusting the Margin command, the tab alignments within the table will still remain the same. _______ _ ________ _____ 32 Chapter 3 Applying Prose _______ _______ ___ ____ Hanging Indents and Tabs Relative tabs can also make hanging indents more flexible. Consider the following example: .mar(l+3).par(u3) `*#4This is absolute point one. .mar.par .mar(l+10).par(u10) `*#11This is absolute point two. .mar.par To change the amount of the hanging indent, you have to change the Margin and Paragraph commands, and the values of the absolute tabs. Note that the absolute tabs have a value that is one greater than the margin setting in the hanging indents. To change the indent when using relative tabs, you only have to change the Margin and Paragraph commands. .mar(l+3).par(u3) `*#+1This is relative point one. `*#This uses # instead of #+1 .mar.par .mar(l+10).par(u10) `*#+1This is relative point two. `*#This uses # instead of #+1 .mar.par _____ _____ ___ ____ ______ Prose Forms for Page Layout One of the nicest features of Prose is the ability to customize your page layout through the Form command. If you look at the template file MANUALS carefully, you will find three Form commands: .com The next FORM is for the Title page: .for([ // l55 //]).comment Unnumbered pages .com The next FORM is for Contents/Preface: .page.for([ // l55 / #33 pr:3 /]).com roman numerals .com The next FORM is for the body of the manual: .for([ T #26 S:40 // l55 / #33 "-" pn:1 "-" /] + [ S #26 T:40 // l55 / #33 "-" pn:1 "-" /]) The last Form seen defines a two-page Form with the page number centered at the bottom of the page and the Title and Subtitle alternating left and right sides at the top. _______ _ ________ _____ Chapter 3 Applying Prose 33 _________ _ _____ ____ Inserting a Title Page If we wanted our report to have a title page, we would add the text for it after the first Form command of the template. This Form, .for([ // l55 // ]), defines a page with 55 lines for text, no headings, and no footings (i.e., no page numbers). /add 24.10 24.10 .opt(l-r-f-) 24.11 ~Feasibility Study~ 24.12 Ohio Plant Site 24.13 24.14 By Kathy Marshall 24.15 24.16 March 25, 1994 24.17 .opt 24.18 // The Option commands tell Prose to center the lines of the title page. _____ ____ __ ___ ______ ____ First Page of the Report Body We switch from the title page and contents page to the main body of the report in lines 27 through 30 of the template file: .com The next FORM is for the body of the manual: .for([ T #26 S:40 // l55 / #33 "-" pn:1 "-" /] + [ S #26 T:40 // l55 / #33 "-" pn:1 "-" /]) .page.count 1.com Start page numbering over again. This defines an alternating left and right form with arabic page numbers centered at the bottom. We use the Page command to force our text to start on a different page from the title page. We use the Count command to reset the page number counter to 1 again. _____ ____ __ _ _______ First Page of a Section Usually we want the first page of chapters and major sections to start on the odd-numbered, right-hand-side pages. The hard way to do this is to print the document once, then insert Page commands before all sections that started on the wrong side of the page. Instead, try the Align command: .align Use this command at the start of a new page. If the current page is even-numbered, Prose ejects it so that your section starts on the next, odd-numbered page. For example, suppose a section of your text ends on page 5. You have just issued a Page command to _______ _ ________ _____ 34 Chapter 3 Applying Prose finish the page, so you are on the start of page 6. Now enter an Align command. Because the current page number is even, Prose ejects page 6 as a blank page. The following page is page 7, which is an odd number and aesthetically acceptable as the start of a new section. Prose starts printing the text of your new section on page 7. This command considerably smooths the path if you like to insert cardboard tabs between sections. This is also useful if your printer can print double-sided pages, as you don't want the table-of-contents (which always prints last in the print run) to start on the back of another page. ____ __ _____ Make an Index There are two steps in producing an index in a Prose document. The first step is to add Inx commands to the text wherever there is a topic that you want indexed. The second step is to add a Sortindex command at the place where you want the actual index to appear. The item above on the Paragraph command was indexed by adding this line to the Prose manual: .inx Paragraph command Prose automatically saves the text "Paragraph command" and the page number where the ".inx" was encountered. If another entry is added for "Paragraph command" on a different page, this new page number will also be remembered. To avoid showing the page number in certain index entries, include the (p-) option in the Inx command, as shown in the following example: .inx(p-) Paragraph command You can include a section name in the page number of any index entry. For example, the page number for an entry in Section 2 and on page 3 would appear in the index as 2-3. In order to number each section independently, you must reset the page number with a Count command at the start of each section. Then, add the section name to each Inx command: .count 1 Section 2. .inx('2-') {first index entry in Section Two} .inx('2-') {second index entry in Section Two} .count 1 Section 3. .inx('3-') {first index entry in Section Three} To produce the final index, we append these commands to the end of our document: .page.sub Index _______ _ ________ _____ Chapter 3 Applying Prose 35 .option(l-r-f-).com Center Page Title ~INDEX~ .option .sortindex(c+ f. m14 p48 l3 r0) These commands will start a new page, define a new running Subtitle, print the word "INDEX" centered and underlined at the top of the first page of the index, and print the rest of the index in a form similar to that at the end of this manual. The Sortindex command requests several things: that entries with the same text be combined into one entry (c+); that the space between the text and the page number be filled with periods (f.); that the whole index be indented fourteen columns (m14); that the page number appear in column 48 (p48); that the page number be __ written in a width of three spaces (l3); and that no spaces be written after the page number (r0). If all of this sounds confusing, just start by entering the Inx lines throughout your document. At the end, add the Sortindex command exactly as it is presented above. If you want the index printed in a different style, look up the Sortindex command in this manual. _____ ________ Index Headings If you have a long index, you can make it more readable by subdividing the entries. The Headindex command enables you to insert a heading before each set of entries that start with the same letter. You can define the characteristics of the heading. For example, to use the initial letter of a set of entries as the heading, surrounded by a blank line before and after, enter the following command immediately before the Sortindex command: .headindex If you prefer a blank line as the heading, use .headindex(h- s0 a0 p0) The option (h-) turns off the initial letter, leaving just a blank line. The S and A options turn off the blank lines before and after the heading. The option (p0) turns off the automatic paragraph skip. If you want a fancier heading, try .headindex(h+ c+ f3 s2 a1 p6) This prints the initial letter (h+) centered on the line (c+) in the font Helvetica Bold on the LaserJet (f3) with two extra blank lines before the letter (s2) and one extra blank line after (a1). The option (p6) tells Prose to start the heading on a new page if there are less than six lines left on the current page. This _______ _ ________ _____ 36 Chapter 3 Applying Prose ensures that the heading (which, in the above example, requires four lines to print) will have at least two index entries after it. This prevents the awkward circumstance of a heading printed on the bottom of a page with no index entries until the next page. ____ _ _____ __ ________ Make a Table of Contents Prose can automatically produce a table of contents page. There are two steps in creating a table of contents. The first step is adding Entry commands to the text wherever there is a topic that you want to appear in the table of contents. The second step is adding a Contents command at the end of the document to produce the actual table of contents. The title of the chapter you're reading right now was added to the Prose table of contents with this Prose command: .entry `|1Chapter 3 Applying Prose| Prose automatically saves the entry text and the page number where the ".entry" was encountered. Because we don't want the page number to appear in the "Chapter" entries in our table of contents, we add one more command to them: .entry(p-) `|1Chapter 3 Applying Prose| You can include a section name in the page number of any entry in the table of contents. For example, the page number for an entry in Section III and on page 4 can appear in the table of contents as III-4. In order to number each section independently, you must reset the page number with a Count command at the start of each section. Then, add the section name to each Entry command: .count 1 Section 2. .entry('2-') {first T-of-C entry in Section Two} .entry('2-') {second T-of-C entry in Section Two} .count 1 Section 3. .entry('3-') {first T-of-C entry in Section Three} To produce the table of contents, append these commands to the end of the file. The table of contents will be the last thing printed. You have to insert it manually behind the title page. .page.count 2 .for([ // l55 / #33 pr:3 /]).Com Roman Numerals .option(l- r- f-).Com Center the following lines Prose _______ _ ________ _____ Chapter 3 Applying Prose 37 User Manual Table of Contents .option .contents(p+) These commands will start a new page and define a form with no headings. The page number will be printed in the center of the last line in lowercase Roman numerals. We consider the title page to be page one, even though we did not print the page number. The table of contents will start on page two, so we force the page number using ".count 2". In this example, the lines between the ".option" command would be centered at the top of the first page of the table of contents. Instead of using the ".contents" command above, you could print a table of contents with page numbers on the right, and with the space between the text entries and the page number filled with dots, using this command: .contents(p+ f. c48 l0 r0) ________ ____ ________ Checking Your Commands Some Prose commands use "keep buffers" to store the most recently used settings. For instance, in previous examples we have used ".mar(l+3)" to start a new left margin, and a ".mar" to return to the previous left margin. With the setting ".mar(l+3)", the Margin command's keep buffer number increases by one. When you return to the previous setting with ".mar", the keep buffer number decreases by one. The Check command will examine keep buffer numbers to see if the keep buffers have the specified value. If any of them do not, you will see an error message. .check(c1 f0 i1 m1 o1 p1 j0) When you use keep buffers as a stack, you may forget to return to the previous setting. For example, if you indent some text by increasing the size of the left margin, but forget a ".mar" command to return you to the previous margin setting, then the rest of your document will remain overly indented. The Check command can tell you if this has happened. However, it cannot tell you where it has happened. If you Included the Styles file, you can not use the Check command. However, when you are using styles to format your document, the problem with forgetting to reset keep buffer stacks is minimized because changing styles will usually reset the keep buffers. 38 _______ _ ___ __ ________ Chapter 4 The HP LaserJet _ _______ _______ ü Getting Started _ _________ ____ ü Landscape Mode _ ____________ _____ ü Proportional Fonts _ _____ ______ __________ ü Finer Column Resolution The LaserJet is a high quality printer that is offered at an affordable price. The LaserJet provides for different type styles by the use of font cartridges. Prose has been modified to take advantage of the features of some of these font cartridges. ____ ______ You can use Prose to print bold and italic text. You can print documents using the proportional type fonts. Using proportional type fonts generally results in better looking documents. _______ _______ Getting Started This chapter assumes that you are already generally familiar with Prose. The following steps will show how to take an existing Prose document and modify it to use the LaserJet. ____ ____ ______ ____ ________ Step One: Define Your LaserJet We assume that your existing documents are designed for standard writing paper (i.e., 8 1/2" by 11"), with seventy columns of text across the page and 60 lines of text down the page. To quickly print this document on your LaserJet, you would add a new Output command: .output(las).comment LAS means LaserJet If you use the shift option of the Output command, you will need to add a shift to your laser Output command. This shift value is one greater than the value used for the line printer. .output(las s5).comment Instead of s4 and LPT If you wish to use "Record Mode" on your terminal to print your document (i.e., the LaserJet is attached to your terminal), you can use the record option of the Output command. .output(las s5 r+) Remember to delete or comment out your standard line printer Output command, since only one Output command can be active at a time. .comment.output(lpt s4) _______ _ ___ __ ________ Chapter 4 The HP LaserJet 39 You can request multiple copies of your document with the Output command. This will only work with the LaserJet. .output(las s5 c2).comment print two copies You can print on both sides of a page on some LaserJets, such as the LaserJet IID. To activate this feature, called duplex printing, you need to add the duplex option to the Output command. .output(las d+).comment duplex printing (both sides) ____ ____ _____ _____ Step Two: Using Fonts Your document will be formatted using the standard Courier 10-pitch characters. Underlines will appear just as they did on the line printer. The next step is take advantage of the A or L ____ ______ font cartridge which provide for bold and italic characters in your document. You must do the following: 1. Include the correct font description file. 2. Define a font character using the Input command. We suggest that you use the up-bar "|" as the font character. 3. Use the font character to change the font-type of specific words. 4. When printing your document, make sure that the correct font cartridge is inserted in your LaserJet. If you have a LaserJet II, the front panel should be configured to FONT SOURCE=I and FONT NUMBER=00 (factory default setting). If you have the A font cartridge, you would use: .output(las s5) .include F92286A.qlibdata.robelle .input(f|) If you have the L font cartridge, you would use: .output(las s5) .include F92286L.qlibdata.robelle .input(f|) Fonts are identified by a number which corresponds to the "keep" buffer for the font. The F92286A and the F92286L include files define the following fonts: Font Description 0 Courier medium ____ 1 Bold _______ 2 Italics _______ _ ___ __ ________ 40 Chapter 4 The HP LaserJet The F92286L include file also defines font 3 as lineprinter 16.66 characters per inch. The Landscape modes of the F92286L fonts are defined by a separate include file, F92286L2 (see below for details). ___ _______ __ _________ _____ Two Methods of Switching Fonts There are two methods for changing the typeface of words. The first is to use the Font command to change the current font definition. .font 2.comment Italic typeface This paragraph will appear with every word in italics. You might wish to use this for examples or for quotes. Prose will continue to print using italics until you use the font character to temporarily change the typeface or until a different Font command is used. .font 0.comment Return to Courier medium typeface The output from the above example would look like: ____ _________ ____ ______ ____ _____ ____ __ ________ This paragraph will appear with every word in italics. ___ _____ ___ ____ ___ ____ _______ __ ___ _________ You could use this for long quotes, or for examples. _____ ____ ________ __ _____ _____ _______ _____ ___ Prose will continue to print using italics until you ______ ___ ____ _________ __ ______ ___ ________ insert the font character to change the typeface ____________ __ _____ ___ _____ _ _________ ____ temporarily, or until you enter a different Font ________ command. The other method is to use the font character. In the following _______ example we will switch to italics whenever we use the word _______ italics. This paragraph will appear with |2italic| words in |2italics|. You might wish to use this for important words. Prose will continue to print using |2italics| until you use the font character to terminate the |2italic| typeface. The Output from this example would be: ______ _______ This paragraph will appear with italic words in italics. You might wish to use this for important words. Prose _______ will continue to print using italics until you use the ______ font character to terminate the italic typeface. If you forget the ending font character, all of the words to the end of the paragraph will be in the different typeface. Whenever Prose does a paragraph break it turns off underlining and returns to the current Font command definition. For example, we'll remove _______ the up-bar from the second instance of italics. _______ _ ___ __ ________ Chapter 4 The HP LaserJet 41 This paragraph will appear with |2italic| words in |2italics|. You might wish to use this for important words. Prose will continue to print using |2italics until you use the font character to terminate the italic typeface. The output from this example would be: ______ _______ This paragraph will appear with italic words in italics. You might wish to use this for important words. Prose _______ _____ ___ ___ ___ will continue to print using italics until you use the ____ _________ __ _________ ___ ______ _________ font character to terminate the italic typeface. ____ _______ Line Printer What if you need to print your document on a standard line printer? All you need to do is change your Output command back to the line printer. .output(lpt s4) ____ ______ Prose will take any of your text that is bold or italic and _________ underline it on the line printer copy. This paragraph will appear with |2italic| words underlined. Note that we are still using the font character to define |2italic| words. We let Prose automatically adjust the output if we don't have access to a LaserJet printer. The line printer output from this example would be: ______ This paragraph will appear with italic words underlined. Note that we are still using the font character to ______ define italic words. We let Prose automatically adjust the output if we don't have access to a LaserJet printer. _________ _______ Half-Line Spacing The LaserJet supports half-line spacing. This means an extra half-line's worth of vertical spacing can be inserted between two lines. You specify the half-line spacing by adding a plus sign after the number of lines to skip. .skip 0+.comment This skips half a line .skip 1+.comment This skips one and a half lines Note that line printers cannot perform half-line spaces. When you print a document with half-line spaces on a line printer, the half-lines will be ignored. _______ _ ___ __ ________ 42 Chapter 4 The HP LaserJet _____ ___ ___________ Fonts and Underlining You can combine different typefaces and underlining. You must use the Prose underline character. .input(u~ f|) This example shows both ~|1bold|~ and ~|2italic|~ words in their respective typefaces and underlined. The resulting output would look like: ____ ______ This example shows both bold and italic words in their respective typefaces and underlined. _____ Forms You cannot specify individual fonts within the Form command. However, you can have the entire form in a font other than font 0. ____ ___ ____ __ _______ Prose uses the font that is in effect when the form is defined to print the form. This can be useful for introductory pages where you would like roman numeral page numbers in italics. .font 2 .form([ // l55 / #33 pr:3 /]) .font 0 ______ ___ _________ Titles and Subtitles Both the Title and Subtitle commands allow for different fonts. ____ ___ _____ __ If no font is specified, the font in effect when the title or ________ __ _________ subtitle is specified is used. The following example would print __________ _______ Consulting in bold and Version in italics (we assume that font 0 was in effect): .tit Robelle |1Solutions Technology| Inc. .sub Prose |2Version| 3.1 _______ Indexes You can specify different fonts for index entries, but they have little effect. Prose treats the font specifications as if output ____ ______ were for the line printer (i.e., bold and italic words will be __________ underlined). _________ ____ Landscape Mode The L font cartridge provides fonts in two modes: portrait and landscape. So far, we have described how to use the portrait mode. In landscape mode, Prose prints from left-to-right across the length of the paper. _______ _ ___ __ ________ Chapter 4 The HP LaserJet 43 To print on 8 1/2" by 11" paper, we need to make the following changes for landscape mode: 1. Shift the output text to center it and specify landscape mode on the Output command. 2. Include the correct font description. 3. Modify the right margin. 4. Change the form to reduce the number of lines on the page and to use different tab positions. 5. Change the columns for the Sortindex command. Landscape capability was added to Prose so that you could use the various Courier fonts of the L cartridge. It is very likely that you will run into limits within Prose if you attempt to define Landscape forms for the tiny lineprinter font. ______ _______ Output Command We will shift the output to the right (to leave 1" margins) and we will specify landscape mode. .output(las s8 L+) ____ _______ ____ Font Include File Use the following include file for landscape mode: .output(las s8 L+) .include F92286L2.qlibdata.robelle .input(f|) You change fonts in the same manner as for portrait. You can use the Font command or the font character. The F92286L2 include file defines the following fonts: Font Description 0 Courier ____ 1 Bold _______ 2 Italics ____ 3 Bold (for compatibility with Helvetica bold) 4 Lineprinter (for compatibility with Roman small) 5 Courier medium (see proportional fonts below) 6 Lineprinter _______ _ ___ __ ________ 44 Chapter 4 The HP LaserJet _______ Margins The right margin must be extended because we are writing across eleven inches of paper. We define a right margin of ninety characters which leaves one inch margins on either side. .margin(r90) _____ Forms Our paper is wider and shorter in landscape mode. Use the following form definition in landscape mode for the standard two-page alternating form: .for([ t #51 s:40 // l41 / #44 "-" pn:1 "-" /] + [ s #51 t:40 // l41 / #44 "-" pn:1 "-" /]) _______ Indexes If you use our suggested Sortindex command, .sortindex(c+ f. m14 p48 l0 r0) you would change it to the following: .sortindex(c+ f. m25 p55 l0 r0) ____________ _____ Proportional Fonts The B and F font cartridges provide Times Roman proportional typefaces. The TMS RMN typeface is similar to the typefaces used in professionally produced books and magazines. For an example of a document that can be printed with the TMS RMN fonts, see the Qedit user manual, Qedit.Doc.Robelle. While these font cartridges produce excellent results, they are more difficult to use than the Courier font cartridge. Remember that in proportional typefaces every letter is a different size. Most letters are smaller than their Courier counterparts, so that more words are placed on each line. __________ Dimensions Commands dealing with columns assume a fixed column width. Previous versions of Prose assumed that there were 10 characters in every inch. The Margin, Form, and Sortindex command work with columns. Once we switch to proportional fonts, it is necessary to decide what measurement devices to use. ______ Prose uses a default of 30 dots per column (there are 300 dots per _______ _ ___ __ ________ Chapter 4 The HP LaserJet 45 inch), which is compatible with previous versions. Seventy columns of 10-pitch text leaves a 3/4" margin on either side when using 8 1/2" by 11" paper. The laser option of the Output command will accept a different width (in dots) to use as the base for determining columns. This affects the following: 1. Margins. 2. Tabbing within forms (e.g., .form([#20 t])). 3. The field width in forms (e.g., .form([t:20])). 4. Sortindex command. 5. Tabs within text (using the tab character). We will show how to design a document to use 30 dots as the basic unit of column measurement. Later, we will show how to use a smaller unit. _____ _____ Basic Steps We continue to assume that your documents will be printed on standard writing paper (i.e., 8 1/2" by 11"). Proportional typefaces are more dense than fixed typefaces. We will reduce the width of printed text to leave a one inch margin (65 columns of text). You will need to follow these steps to produce nice-looking, proportionally spaced documents: 1. Shift the output text to center it on the page. 2. Include the correct font description. 3. Modify the right margin. 4. Change the Form command to use different tab positions. 5. Add tab characters to keep text aligned in columns. 6. Adjust the Paragraph and Margin command for lists of points. 7. Change the column positions of the Sortindex command. ______ _______ Output Command To start, we will shift the text more to the right with the Output command. We will explicitly specify the column width, even though the default is 30. .output(las 30 s8) _______ _ ___ __ ________ 46 Chapter 4 The HP LaserJet ____ _______ ____ Font Include File You will have to include the correct font description file for your font cartridge. If you have the B font cartridge, you would use: .output(las 30 s8) .include .input(f|) If you have the F font cartridge, you would use: .output(las 30 s8) .include .input(f|) Fonts continue to be identified by a number which corresponds to the "keep" buffer for the font. The F92286B and the F92286F include files define the following fonts: Font Description 0 Roman medium ____ 1 Bold _______ 2 Italics _________ ____ 3 Helvetica bold 4 Roman small and light 5 Courier medium (fixed typeface) 6 Lineprinter (fixed typeface) You change type fonts in exactly the same way as for Courier. You can use the Font command or the font character. _______ Margins We recommend that your documents be 65 columns wide. This is the right margin you would use: .margin(r65) To make it easier to convert back to line printer output, you should add a margin(r65) command to the line defining the line printer: .comment.output(lpt s7).mar(r65) .output(las 30 s8).mar(r65) _______ _ ___ __ ________ Chapter 4 The HP LaserJet 47 _____ Forms Prose's built-in form, as well as the forms that we often used in the past, produce documents with 70-column margins. We will need to modify the forms to restrict them to 65 columns. The new Form command would be: .form([ t #26 s:40 // l55 / #33 "-" pn:1 "-" /] + [ s #26 t:40 // l55 / #33 "-" pn:1 "-" /]) If you wish to have introductory pages with no titles and roman numeral page numbers centered at the bottom of the page, you would use: .form([ // l55 / #33 pr:3 /]) If you wanted the roman numeral page numbers to appear in italics, you would use: .font 2.comment select italic .form([ // l55 / #33 pr:3 /]) .font 0.comment return to roman medium ____ Tabs Having text line up in columns is easy with Courier (or any fixed) typeface. You just align the text in your original file and it appears lined up in your output listing. Because each character in proportional typefaces has a different width, aligning text visually no longer works. Instead, you have to define a tab character with the Input command and tab across the page. ________ ______ Take an example from the Managing XPRESS manual. This is how the output looks, without tabs: MAIL XPRESS program files to :Run. MAILDB Database and schema, password file. CATALOG Message catalog and XPRESS UDC file. JOB Sample job streams. DOC Manuals and other documentation. HELP On-line help text. When this input text is converted into proportional output, the left edge of the second column wavers left and right. It is not in a straight line, as it was in the input. The reason is simple: the characters in the first column are not all the same width. To resolve the problem, and make the output correct for both Courier and TMS RMN fonts, we define a tab character and use it to align the descriptions: _______ _ ___ __ ________ 48 Chapter 4 The HP LaserJet .input(t#) MAIL #16XPRESS program files to :Run. MAILDB #16Database and schema, password file. CATALOG #16Message catalog and XPRESS UDC file. JOB #16Sample job streams. DOC #16Manuals and other documentation. HELP #16On-line help text. How did we pick column 16 to tab to? We just used the column in the input text file where we wanted the columns to appear. Be careful that your input line is not already past the designated tab column when you insert the #. If it is, the tab may work properly with TMS RMN (where most characters are smaller than one column), but fail on the line printer. If you are already past the tab column, Prose ignores the tab function. There is no error message. __________ Paragraphs The Paragraph command defines a character that is used at the beginning of paragraphs. Additionally, you can use the paragraph character to produce a nicely formatted list of points. Without proportional spacing, you could use Undent 4 and shift the Margin right 4 spaces, as follows: .font 5 .paragraph(f` s1 p5 u4) .margin(l+4) `1.@@XPRESS sends messages to Helpman when it finds problems in the MAIL database. `2.@@Helpman is the only user who can use the MAINT program to define new users, change users, define "machines", and otherwise configure XPRESS. .margin The output would look like: 1. XPRESS sends messages to Helpman when it finds problems in the MAIL database. 2. Helpman is the only user who can use the MAINT program to define new users, change users, define "machines", and otherwise configure XPRESS. Actually, a list of points is an example of column-oriented text. To make this text look nice with proportional fonts, we will need to add some tabs. Because numeric characters are so small, we will indent points three columns instead of four: _______ _ ___ __ ________ Chapter 4 The HP LaserJet 49 .paragraph(f` s1 p5 u3) .margin(l+3) `1.@#4XPRESS sends messages to Helpman when it finds problems in the MAIL database. `2.@#4Helpman is the only user who can use the MAINT program to define new users, change users, define "machines", and otherwise configure XPRESS. .margin The resulting output would look like: 1. XPRESS sends messages to Helpman when it finds problems in the MAIL database. 2. Helpman is the only user who can use the MAINT program to define new users, change users, define "machines", and otherwise configure XPRESS. This set of commands will produce nice results whether your output font is fixed or proportional. There is one restriction when using this method. You should limit yourself to lists of less than ten points. Points with two digits (e.g., "10.") will not have a space after the period when they are printed in a fixed typeface. _______ Indexes The Sortindex command uses column positions to specify where the text and the page number should start. Because we have shifted the output to the right, we will need a slight change to existing Sortindex commands that worked with 70-column output: .sortindex(c+ f. m15 p52 l0 r0).com For 70 columns You would change it to the following: .sortindex(c+ f. m14 p48 l0 r0).com For 65 columns ___________ Indentation With fixed-size fonts, leaving three blanks at the beginning of the line was the same as shifting the left margin three columns. With proportional fonts, this is no longer so. A TMS Roman blank is 17 dots wide, but each margin column is 30 dots wide. You should either do indentation using Prose commands or by indenting spaces, but not by using both in the same piece of text. _______ _ ___ __ ________ 50 Chapter 4 The HP LaserJet ____ _______ Line Printer All Robelle documentation is formatted and printed using Prose. We use Prose to produce typeset documents on our LaserJet, but we also need to convert these documents back to a format that will print correctly on a standard line printer. To convert a proportionally spaced document back to line printer format we are concerned with the following: 1. Output command. 2. Margin command. 3. Form command. 4. Sortindex command. 5. Tabbing. 6. Table of contents. One common format is to have sixty-five columns of text, giving you one inch margins on either side of the page. You only need to change the Output command to switch from the LaserJet to the line printer. You must be careful with examples. With proportional typefaces there are more characters in 65 columns, because most characters are smaller than 30 dots wide. For involved examples, you should switch to Courier and restrict the example to 65 columns. With proportional typefaces, more text fits on each page. If you manually maintain a table of contents, you will have to revise it once you switch back to line printer output. _____ ____ __________ Other Font Cartridges Each LaserJet font cartridge has one or more corresponding files in the Qlibdata group of the Robelle account. These files all start with "F92286" and end with the letter code for the font cartridge. The first few lines of each file describe the Prose font numbers for each different LaserJet font. To use a different font cartridge, include the correct file from the Qlibdata group and follow the steps described at the beginning _______ _______ of this chapter under Getting Started. _______ _ ___ __ ________ Chapter 4 The HP LaserJet 51 _____ ______ __________ Finer Column Resolution Using our examples, you should be able to produce good results on your LaserJet. A bonus with these methods is that you can switch back to the line printer by changing one thing: the Output command. It is possible to gain finer column resolution in your LaserJet document, at the cost of making it difficult to switch back to the line printer. The instructions below show how to define 20 columns per inch instead of 10, but it does not buy you a better-looking printout. Every character will be printed exactly as it is now; the only difference will be your ability to place tab stops and margins a little more precisely. If you have cases where you would like to tab to column 16-and-a-half, for instance, this would allow you to do it. _______ Columns There are 300 dots per inch. We have been using 30 dots as the basic column measurement. This gives 300/30 = 10 columns per inch, equivalent to 10-pitch type. One Courier space, defined as 30 dots wide, is almost twice the size of the TMS Roman space which is 17 dots wide. The following command specifies a column width of 15 dots, so tabs can be more accurately placed. .output(las 15).comment 15 dots per column, not 30 So, at 300 printable dots per inch and 15 dots per column, we can print 20 columns per inch. This is going to mean that every reference to column positions in your document must be adjusted. _______ Margins Margin definitions in Prose use the column width specified in the Output command. In Courier, the space takes 30 dots (there are 300 dots to the inch). We recommend that your documents be 65 columns wide. Since 15 dots are exactly one-half the width of 30 dots, you can adjust all column references, including margins, by multiplying them by 2. .margin(r65) becomes .margin(r130) _____ Forms The Forms described elsewhere in the Prose documentation all assume 30 dots per column. The tab character in the Form is based on the width of the column defined in the Output command. You will need to double all of the column numbers in your Form if you _______ _ ___ __ ________ 52 Chapter 4 The HP LaserJet switch from 30 to 15 dots per column. For example, .form([ t #26 s:40 // l55 / #33 "-" pn:1 "-" /] + [ s #26 t:40 // l55 / #33 "-" pn:1 "-" /]) becomes .form([ t #52 s:80 // l55 / #66 "-" pn:1 "-" /] + [ s #52 t:80 // l55 / #66 "-" pn:1 "-" /]) If you wish to have introductory pages with no titles and roman numeral page numbers centered at the bottom of the page, you would use: .form([ // l55 / #66 pr:3 /]) _______ Tabbing We have shown the need for tabs in aligning proportionally spaced text. When using 15 dots as the basic dimension, you must double your usual tab columns. Previously, you would use: MAIL #16XPRESS program files to :Run. MAILDB #16Database and schema, password file. CATALOG #16Message catalog and XPRESS UDC file. now you will use: MAIL #32XPRESS program files to :Run. MAILDB #32Database and schema, password file. CATALOG #32Message catalog and XPRESS UDC file. _______ Indexes The Sortindex command uses column positions to specify where the text and the page number should start. These will not be correct with Output (LAS 15). For example, to convert the 65-column Sortindex command: .sortindex(c+ f. m14 p48 l0 r0) becomes .sortindex(c+ f. m28 p96 l0 r0) 53 _______ _ _____ ________ Chapter 5 Prose Commands _ _______ _____ ü General Notes _ _____ ________ _ _ _ ü Prose Commands A - Z _______ _____ General Notes Prose automatically fills and justifies output lines, and formats the output into pages. Commands are needed to instruct Prose to do anything f