home *** CD-ROM | disk | FTP | other *** search
- .// This is, again, a JGPrint file, to be JGDocced to produce a well laid-out
- .// document.
- .// Source of JGPrintInfo
- .setu 10 :arc: In/exclude archimedes only features. see .if/fi below
- .// .setu 10 :msdos: Ex/include msdos only features.
- .// .sp 0 Comment out if Pages wanted; default 66 lines (.sp 66)
- .ft
- /
-
- .col
- |Page \p
-
- /
- .hd
- :
-
- .if \o
- .col
- Tue,21 Apr 1992|JGPrint/JGSharePr
- .else
- .col
- JGPrint/JGSharePr|Tue,21 Apr 1992|
- .fi
-
- :
- .setm 11 *.nost
- \s1 \t* Used for undentation; end of layout prologue.
- .ht 7
- .setu 12 :common:
- .setst :\t:
- .makel list
- .setst ::
- .col
- |JG(Share)Pr
-
- This document introduces aspects of JGPrint that are not available in JGDoc
- mode. These are:
- .usel list
- .nost
- 0. \t}The JGPrint Environment;
- .nost
- 1. \t}The Initial Dialogue;
- .nost
- 1.a. \t}\ \ \ To Screen;
- .nost
- 2. \t}Vertical Matters;
- .nost
- 3. \t}Horizontal Matters;
- .nost
- 4. \t}Style Matters;
- .nost
- 5. \t}Printer Configurations.
- .usel base
-
- Matters are not here treated exhaustively; for that the reader is referred to
- the reference manual supplied when a licence is purchased, but I would guess 85%
- of the uses made of JGPrint would involve only what is treated here, in
- JGDocdoc and the XMP files.
-
- The Details of particular configuration problems in 2-4 should prove useful in
- the more 'how to do it' 5.
-
- .col
- |JGSharePrint Restrictions
-
- After one or a few more pages, JGSharePr will insert a polite? request that you
- buy a licence, flanked, above and below by a matched random anount of white;
- pagelength regulation is preserved. This does not happed in JGDoc mode, nor if,
- simply, JGPrinting to screen.
-
- .col
- 0|The JGPrint Environment
-
- In order to run as JGPrint, !jgp.Info.JGPStrings must not begin with *.
- Therefore, shift-double click on !jgp to open the directory, then on Info; drag
- JGPStrings to JGEd to edit out the initial *.
-
- Please put * back when you pass on the Shareware material.
-
- If !jgp.JGPStrings begins with a '.', some diagnostic information is printed out
- before the normal dialogue. See ExAlien for details.
-
- .col
- \s1=1|The Initial Dialogue
-
- JGPrint (not in JGDoc mode) begins by engaging the user in a dialogue; this
- takes place in its own window, which occupies the entire screen. Nevertheless,
- JGPrint releases the processor to other applications when it would otherwise be
- idle. Depending on what you are JGPrinting to, you may be offered a choice to
- continue in the desktop or in its own window. You may change your mind in
- mid-run.
-
- The dialogue begins with a copyright announcement; JGPrint then proffers the
- preferred configuration, and, if this is not accepted, displays what others are
- available. It then asks for a date string, which is optional, and enters the
- initial dialogue proper.
-
- The prefered configuration can be set from the JGPrint icon bar icon's menu, and
- is initially 'default'.
-
- At any stage, ending one's response with a <cr>
- .if \u10 eq arc
- or clicking on select, or on menu followed by adjust
- .fi
- causes a 'jump' to the 'Go' prompt, possibly via the Indesktop prompt, skipping
- all other parts of the dialogue; ending otherwise yields another line of
- dialogue. These lines are arranged with the least common towards the end, so
- that it is extremely rare to go right through the whole dialogue; mostly,
- indeed, only the first two lines are needed.
-
- Much of the dialogue is self-explanatory, and most of that which is not need
- only rarely be used, and so is not treated here. If there is a specific
- expected response, it is suggested in the dialogue prompt. Experiment is the
- best way to explore.
- .if \u10 eq arc
- A sequence of clicks on select will take you through JGPrint in the most
- commonly used way; a sequence of clicks on adjust, with a few numbers or
- filenames where prompted, will take you the long way through.
- .fi
-
- If you do not want to proceed, and you have not passed the comfiguration
- selection, JGPrint to 'n' (nowhere), and press Y after Go; alternatively, press
- Q(uit) when prompted.
-
- .if \u10 eq arc
- In the initial dialogue, when there is only one selected response shown on the
- prompt, mouse-select is construed as the selected response AND jump to go;
- mouse-adjust is construed as deny the selected response BUT continue the dialogue.
- Mouse-menu followed by either of the first two yields the same response, but
- swaps jump to go with continue the dialogue.
-
- This may at first sight seem a curious coding choice, but the purpose is to
- require only one click at each prompt, unless you want two or more of the extra
- features applied on one file. I was in two minds as to whether or not to swap
- the functionality of menu and adjust; I think having the modifying button
- seperating the two action buttons works well, although one does lose the
- connotation of adjust.
- .fi
-
- The prefered configuration file, initially
- .if \u10 eq arc
- 'default', or selected via the JGPrint bar icon menu
- .fi
- , is first offered, and if not accepted, the available alternatives are
- displayed and one is prompted for; an empty string followed by select/Y will
- exit immediately, a misspelled string will promt for exit.
-
- .col
- \s2|From:
-
- This is a request for the specification of the filename of the 'jgprint' file
- from which text is to be JGPrinted. The directory in which it lives serves as
- the base directory relative to which any auxiliary file needed is specified.
- .if \u10 eq arc
- In the desktop, this is automatically supplied as the full filename of the file
- you click on; otherwise the currently selected directory is assumed.
- .fi
- .if \u10 eq msdos
- All filenames specified without extension are given the extension .TXT.
- .fi
-
- .col
- \s2|To:
-
- A null response signifies Printer(=l), unless the configuration in use names
- its printer Screen or Ansi, in which case null signifies Screen(=c).
-
- NB. Rather than 'l' oe 'c' (see below), you may prefer to give a filename (of
- two characters or more); the resulting file can then be copied to the screen or
- to the printer, as was the case with JGDoc.
-
- However:
- .hln
- \s3)\ The file specification is taken to be relative to the From file directory;
- .hln
- \s3)\ There will, if the configuration calls for it, be printer codes within this
- file;
- .hln
- \s3)\ (an approximation to) the file being written will rush past on the screen,
- unless you choose InDeskTop.
-
- The purpose of this last is to enable the context of a diagnostic report to be
- shown. You should know that JGPrint may hold a full line and a part line between
- what is being read and what is being written.
-
- The file produced will be of type JGPCopy, and consequently clicking on it will
- enable you to use JGPCopy's facilities to send it to the printer or view it on
- the screen; JGPCopy(qv) will excise printer commands from what is sent to the
- screen.
-
- Outside the desktop, pf in JGEd (qv) can send it to the printer while doing
- your next editing run.
-
- With the 'c' response, the screen pauses about every half\-page until a key or
- click; if you JGPrint to a file 'null:', text scrolls without interuption on the
- screen.
-
- If you are using JGPrint direct to screen, the screen painting is slowed
- according to a parameter 'slow' among the sizes in the configuration file. (You
- can almost certainly live with the initial setting.) Also, after thirty lines
- are on the screen, the page freezes, and you are prompted to hit a key to allow
- it to scroll up about 2/3 of a page and continue; alternatively hitting M/m or
- clicking Menu will take you to the desktop with a latent window.; there is a
- menu there to continue, or to write to a Jot file before continuing. Continue has
- a submenu to choose between in own window and in desktop; if indesktop is not
- available, this entry will be shaded.
-
- If some other task has overwritten a window, JGPrint does not currently restore
- itself over an abandoned window without visiting the desktop; however where the
- window was will be scrolled up and lost at the top of the screen.
-
- If, in JGPrint mode, you print to a file, the image of what you send to the file
- passes quickly over the screen without paging. This is probably the best way to
- find the context to purge diagnostic reports from your texts. The file 'null:'
- is probably best; with JGSharePr, of course, you get tiresome polite requests;
- for this purpose, these don't matter overmuch.
-
- However, in some circumstances, spaces are not sent to the screen and the result
- needs compassion to interpret. Printer codes sent to the screen are skipped on
- the screen in most contexts; any codes that upset the screen are always skipped,
- but in Verso, or if page prompting is requested, the codes <esc><esc> and
- <esc>0n are inserted for JGPCopy to respond to.
-
- Some other useful responses are:-
- .usel list
- .nost
- d: \t}diagnostic reports; follow the resulting dialogue.
-
- .nost
- i: \t(thence <file>); produce a file for subsequent editing.
-
- .nost
- j: \t}as i: but in a form preferred by some word processor editors; <nl> within
- paragraphs are replaced by <sp>
-
- .nost
- h: \t(thence <file>); interactive hyphenation; follow resulting instructions.
-
- .usel base
- .col
- |(about 5 prompts not documented)
-
- .col
- \s2+6|Many
-
- .if \u10 eq msdos
- You will be prompted to name an auxiliary file. JGPrint sends its output to this
- file and shows it on screen, then pases it the number of times requested whither
- you requested (usually the printer). A key press or mouse click at either
- stage enforces a pause.
-
- NB There is a known harmless bug in that bytes >= <space> from printer codes in
- footnotes get through to the screen; eliminating this nonsense would be more
- trouble than it's worth.
- .else
- JGPCopy is the preferred way of printing multiple copies in the Desktop.
- .fi
- .if \u10 eq arc
- JGPCopy provides an option for getting many copies of a file. Therefore this
- prompt is ommitted.
-
- .col
- |(another prompt not documented)
-
- .col
- \s2+2|Verbatim
-
- The Directives in the To: file itself are interpreted, but, in included
- (\\+)files, all text except the £ character is copied. (Wordwrap is imposed if
- line overflow.) This facility is aimed at program documentation.
-
- .col
- \s2+2|Verso
-
- Pages 1,3,5,... are printed; pages 2,4,6,... are put to an intermediate file;
- after a prompt to enable paper to be reset, this file is then printed.
-
- The pause is not provided if JGPrinting to a file for subsequent use of JGPCopy
- is used, but only when JGPrinting direct to the printer. An associated dotty is
- ..gute {-}<n> which gutters by <n> on even pages, by -<n> on odd. Small <n> is
- column width, large <n> 1/3600". if - is there, the wider left\-margin will be
- on odd rather than even pages.
-
- See the prologue of this text for how to have different running heads on odd and
- even pages.
-
- .col
- |-o0O0o-|
-
- The following group of prompts concern facilities that require auxiliary files.
- If a null file is supplied in JGPrint's own window, the desktop is visited with
- a from or to File Window. Dragging a file icon to the from window gives
- filenames for merge and an external userstring file.
-
- .col
- \s2+6|Merge:
-
- This requires the path+name (relative to the from directory) of a file from
- which successive records will be read when \\f<descriptor> is encountered. \\g
- brings in the next record, and if the record file is not exhausted when the
- end of the from file is reached, the from file is restarted with the next
- record. See EXMERGE\/EXMERGM for an example. EXLBL/EXLBM is another example,
- using the .rpt directive to generate labels. Alternatively, if a merge file is
- required to satisfy a \\f<descriptor> directive, but on has not yet been
- provided, you will be prompted to do so at that point in the text.
-
- .col
- \s2|Index:
-
- Text between \\i and \\j in the from file, with the current pagenumber etc., is
- sent to the file requested here, in the form of records that can be
- subsequently used to set out contents or an index.
-
- If a from file contains \\i...\\j brackets, but an index file is not
- specified, a diagnostic complaint will be generated once, but subsequently
- such brackets will be ignored.
-
- .col
- \s2|UserStrings:
-
- Use a file to preset userstrings in your text. This file would, usually, have
- been saved at the end of a previous run (see below).
-
- .col
- |-o0O0o-|
-
- The final group of choices in JGPrint's initialisation dialogue are a trio
- designed to help users explore their printers. A user of JGPrint who is
- satisfied by the configuration files available to her has no need of these,
- though she may find the first interesting.
-
- What these choices print does not depend on what JGPrint file you click on, but solely
- solely on the configuration file in use. For this reason, if you click Select or
- type Y to enter either, they will, after some further dialogue, normally send
- appropriate characters to the printer, and exit without printing the file you
- clicked on to enter JGPrint.
-
- They can be explored without engaging the printer by responding Y/Select to
- "Test Printing on Screen?", a query which comes up after the user has responded
- Y/Select to either of the main enquiries; this transfers bytes intended for the
- printer to the screen, but it should be noted that this will not give an
- accurate idea of what would appear on the printed page; it is an option provided
- simply to enable the user to see on the screen the nature of the information
- which will be provided by going to the printer. An oportunity to spool this
- information to some file is provided.
-
- After the response to "Test Printing on Screen?" you will be asked for a
- range of bytes whose effects you wish to see; after printing these, JGPrint asks
- "More?", and you can provide another range of bytes; as noted above, a negative
- response causes JGPrint to exit.
-
- The Time of the run is output, and relevent information about JGPrints' beliefs
- about the printer.
-
- .col
- \s3|See Printer Charset
-
- Unlike Acorn Printer drivers, JGPrint uses the printer's character set
- directly, rather than trying to recreate the Acorn screen character set. This
- prompt sets out on the page the byte number/character relation after the
- configuration file's init command has been executed. (If you were testing
- printing on screen, you would, of course, see the Acorn set, not your
- printer's.)
-
- NB. Some configuration files may use later JGPrint directives to change the
- printer's selected alphabet. This is rare, but, if so, you will need to append
- these codes to init, or otherwise alter it. I suggest you work on a copy of your
- configuration file to do so.
-
- .col
- \s3|Prop Char Width
-
- This prompt is probably only of interest to someone building a new
- configuration file.
-
- When building a new configuration file, one of the most difficult areas is
- working out the width of characters, which is rarely documented in your printer
- manual. This prompt provides you with a eight inch ruler across the page, based
- on the nominal cpi, with n repetitions of the character below it, where n is the
- number, e.g. 100, of repetitions you have asked for. You can then measure how
- long this group is, and therefore the width of each individual letter.
-
- This facility assumes, in addition to the printer code 'init', that the codes ps
- and ps0 have been properly specified in the configuration file, and that
- 'horunit', the number of horizontal printer units to the inch has been correctly
- specified in the configuration file. You may also want emph/emph0 and
- ital/ital0.
-
- As before, it may be necessary to amend init. For example, you may have set the
- printer to lose any printing beyond the right margin, but for this purpose you
- would want character wrap.
-
- .col
- \s3|Check Widths of ps characters
-
- This uses the information garnered from the preceeding, to put out as many
- characters as JGPrint believes will fill 6", with the upright character
- positioned to where it believes the rightmost point of the last character should
- have reached. This enables you to fine tune the character wisths.
-
- .col
- \s2|In Desktop
-
- If you are JGPrinting to screen, obviously you must keep JGPrint's window open,
- for that is where the text, which is the whole purpose of the run, is displayed,
- and this prompt will not appear. However if you are JGPrinting to a file, it is
- sensible to consider whether or not you want JGPrint to preempt the whole screen
- to display any output. You may decide not, and JGPrint will retreat to its
- latent window, where the rough percentage of the input text read is displayed.
-
- This is not the only way to the Desktop. Clicking menu will move to the latent
- window and stop processing. Clicking on that window acquires a menu, one choice
- of which is continue, which reveals a submenu with the choice of Own Window, or,
- if available, in desktop.
-
- Of course, JGPrint passes control to other desktop processes when it does not
- need to keep it, whichever window it is using.
-
- .col
- \s2|Go (or Quit)?(Y/Q) :
-
- Unless you respond Y/y to allow JGPrint to proceed, the dialogue will restart
- from 'From: '; Quit gives you your last chance to leave the program before
- opening files etc.
-
- If your text has set userstrings, you will be invited to save your settings in a
- file that you can use on a later run to preset values.
-
- While you are JGPrinting, a key, or, if to screen or printer, a mouse click,
- will temporarily halt JGPrint.
-
- The configuration parameter Slow can be set to slow the ouputting of lines to
- screen. I keep it at 40, i.e. just less than half a second (n/a in desktop).
-
- If you decide to re-use JGPrint without going back to the desktop, you can
- specify another source file. (specification understood relative to the
- preceeding from file.)
-
- .col
- |-o0O0-
-
- .col
- \s1|Vertical Matters
-
- Unlike JGDoc mode, we have now to think in terms of absolute physical
- measurements. Internally, JGPrint works in terms of 1/2160" vertical units,
- though it is usually possible to provide more convenient numbers as parameters
- to directives or as 'size' parameters in configuration files.
-
- For any printer, a key parameter is the vertical unit in terms of which motion
- is specified in printer commands. The configuration parameter 'Vertunit' must
- be set to the number of such units to the inch, e.g. 72, 144, 216. JGPrint can
- now translate vertical motion requests so that the printer can respond
- correctly.
-
- See the discussion of configuring below, and the online helpfile
- !jgp.info.JGCfgInfo for information about configuring parameters and codes.
-
- .col
- \s2|New Lines
-
- If the configuration has an absolute horizontal position code (abshor), it uses
- this in place of <cr> in order not to upset those printers that output a
- <newline> whenever the recieve a <carriage return>; if text is being sent to
- screen, a cariage return is output
-
- Otherwise, if the size parameter CrandLn in the configuration file is 1, JGPrint
- puts out <cr><nl> for a new line. If CrandLn is 0, JGPrint just puts out <nl>.
- JGPrint cannot put out just <cr>, because it needs to distinguish new lines from
- twice printed lines (used for vertical bars).
-
- Similarly the size parameter CrandHln controls whether or not <cr> is put out
- before the half-line command. (On some HP style printers, putting out <cr> seems
- to cause an extra linefeed.). I keep these parameters 0, and set my printer to
- give a carriage return only if it is explicitly called for. but some users may
- want their printers to handle this.
-
- .col
- \s2|Windback
-
- Before outputting to the page, JGPrint can wind the paper back a length
- specified by 'Initup' in the configuration file. The purpose of this is to move
- the top of the page of continuous paper from the printer's cutting bar back to
- just above the printhead itself. 2160 would specify 1" windback, but it is
- usually sensible to make exact adjustments by looking at the result on the
- paper. The header of EXLayout has a line of quotes to specify where the top of
- the page is deemed to be. NB Single sheet printers may not be able to print in this
- position, and it may well be appropriate to remove this line.
-
- .col
- \s2|Interline Spacing
-
- The directive .sp <n>, or the value of the configuration parameter 'initsp'
- determines the vertical distance between lines. Values of 1-10 are construed as
- lines per inch, 11-120 as lines per page, and larger values as units of 1/2160".
- I usually use 6 (=360), or 8 if I want to get a lot on a page. The configuration
- code 'spacing' determines the code bytes sent to the printer; there are two
- optional codes (if null ignored) LpiSpacing and LppSpacing for the case that the
- printer has special codes for these.
-
- .col
- \s2|Interparagraph Spacing
-
- The directive .parsep <n>, or the value of the configuration parameter
- 'initParsep' determines the extra space put in between paragraphs. 0,1,2,3 are
- lines, otherwise the number - up to 300 - is the percentage of a line added. A
- line is forced on screen unless parsep is 0.
-
- .col
- \s2|Vmi, Downtab and Uptab
-
- If, as with HP style printers, there is a command which, with a positive
- parameter, moves the printhead down the page, and with a negative parameter
- moves the printhead up the page, you should set the printer command Vmi to, for
- example, '*'+'p'+'%'+'v'+'Y'. %v specifies 'interpret the parameter as a signed
- numeral'.
-
- In Epson style printers such a vmi is not used, and you must set vmi to null.
- You can then use the two codes 'downtab' and 'uptab' to specify the bytes to send
- to the printer to move the paper down and up respectively. Typical strings for
- downtab could be 'J'+'%'+'I', for uptab, 'j'+'%'+'i'. The '%'+'I' specifies
- that a parameter is to be output as a byte. if 'esc' is set true, these strings
- will be preceded by the byte 27(esc).
-
- .col
- \s2|Halfline
-
- The directive .hln will move the paper by half the current line\-spacing.
-
- .col
- \s2|General Vertical Motion
-
- ><n> moves the printhead <n> vertical units (1/2160") down the page; -<n> moves
- up. If <n> is between -59 and 59, this is construed to be n/12 of the current
- line spacing. 5 lines up or down should cover most needs.
-
- .col
- \s2|Inithdft
-
- The three size parameters Inithd, Inithdss and Initft in the configuration file
- determine the default header height, header height if cutsheets, and footer
- height. With a pushing paper feed Inithdss should probably be the same number of
- lines as inithd, or one less; with a puller feed, inithdss should probably be 0,
- and you will probably need to set skipss non\-zero.
-
- .col
- |-o0O0-
-
- .col
- \s1|Horizontal Matters
-
- JGPrint's internal horizontal units are 1/3600", and in order that appropriate
- commands be issued to the printer, the sizing prameter 'horunit' must be set
- to the number of units to the inch that the printer requires for horizontal
- motion, e.g. 300, if characters are 10 cpi (characters per inch) and can each be
- divided into 30 units.
-
- .col
- \s2|Characters per inch
-
- The directive .cpi\ <p>\ {<l>\ {<r>}}, as well as optionally setting the left
- and right margins, sets the characters per inch. 'Defp' sets the default 'Font'
- in which to find the width of proportionally spaced characters. <p> is passed as
- a prarameter to the 'pitch' command.
-
- If any of the commands 'cpi5', 'cpi6' or 'cpi10' are non-null, they are
- substituted for 'pitch'; they should require no parameters. Also the font they
- use will be '10p', '12p', '10p' respectively. Non-null commands 'cpi8', 'cpi12'
- 'cpi17' are used similarly using '17p', '12p' and '17p' respectively. Also the
- width of each character in JGPrint horizontal units is set from '8w', '12w' and
- '17w' respectively. Finally, we have 'nlq' with 'nlqp' and 'nlqw', to respond to
- the directive .nlq\ <c>\ {<l>\ {<r>}}.
-
- Initnlq, initcpi, initlm and initrm in the configuration file determine the
- default values, with initnlq taking priority over initcpi.
-
- Example: Configuring for HP Deskjet, Pitch would be <esc>(s%JH, where %J
- signifies "put in a parameter". However cpi16.67 and cpi20 are available, but
- not cpi12 or cpi17. Define cpi12 as <esc>(s16.67H and cpi17 as <esc>(s20H,
- with, respectively 12w = 216 (3600/16.67) and 17w = 180 (3600/20) and the
- JGPrint directives .cpi 12 and .cpi 17 will, respectively, yield the narrower
- but available pitches. 12w is the only way to get 16.67 cpi, since the effect
- cannot be provided using only whole number parameters, but .cpi 20 ... would be
- an alternative way to get the narrower text.
-
- If a proportionally spaced font is requested, the current cpi is not very
- meaningful to the printer; JGPrint continues to use it, however, to set margins,
- tabs and vertical bars.
-
- .col
- \s2|Fonts and Proportionally spaced characters.
-
- In the configuration file, the pseudo-command 'Propcharwidth' names an
- associated (q./.qqq) file which specifies the width of each character. (See
- below for how to set these widths.) If proportionally\-spaced characters are
- specified, either by 'initps'=1 in the configuration file or by the directive
- \\P (cancel \\Q) in the text, superior justification algorithms to .fj can be
- invoked. I have removed the availablity of \\P, \\Q in midline, but will replace
- them if given a good reason.
-
- (I normally put this as .\\ \\P, .\\ \\Q in the prologue, since I made a design
- mistake in specifying these as backslashes, following what printer hardware is
- capable of, rather than as dotties, which is what users, in practice, always
- want. Indeed, I am currently generating a diagnostic if they are used online in
- a line.)
-
- The pitch set when \\P is engaged is not really a property of the font, but should
- be set to about the average character width. JGPrint uses it if you want to set
- margins and tabs in terms of the notional number of character columns.
-
- The directive .fgfj (fairly good fill and justify/fudge) puts a single
- part\-character width space in the line; .jgfj (jolly good fill and justify)
- puts part character\-width spaces between each word in the line. .jgfj requires
- the configuration code HMI to be set (e.g. '\\' + '%' + 'E' on my nec P2200; %E
- specifies "interpret the parameter as an Epson-style two-byte number").
-
- If the printer command Abshor is non-null, each ink character, or each word, can
- be preceded by this command with an appropriate parameter to place the printer
- head at the correct position; see below for details of how to require this.
-
- The use of proportionally\-spaced characters cannot be accurately represented on
- a normal vdu, and sending such to screen requires some goodwill to interpret.
- JGPCopy is quite successful in killing noise for Epson style codes or HP style
- codes, according to the choice made.
-
- Look at the documentation for Defp, nlqp, 10p, 12p, 17p, Dots0/1, Ital0/1 and
- Bold0/1 below or in the online configuration document, or its source, JGCfgDoc.
-
- .col
- \s2|General Horizontal Motion
-
- \\}<n> moves the printhead <n> horizontal units (1/3600") to the right on the
- page; \\{<n> moves to the left. If <n> is between -59 and 59, this is construed
- to be n/12 of the current column width.
-
- .col
- |-o0O0o-
-
- .col
- \s1|Style Matters
-
- When text appears on the screen (To: c, b, <file>), underlining
- causes text to appear underlined, bolding causes text to appear in mangenta,
- italicizing causes text to appear in dark green, and bolding and italicizing
- together cause text to appear in bright blue. These effects do not carry through
- to JGPCopying files produced by JGPrint.
- .if \u10 eq arc
- If, by any mischance, you leave in the middle of underlining in a way that I
- have not foreseen, this just might cause all letters to be underlined
- thereafter; *fx20 in the command line turns the effect off.
- .fi
-
- In JGEd, F1 + 0 lists all dotties and backslashes; in JGCnfigInfo, the
- printer codes they are related to are made available online in JGConfig.
-
- .col
- \s2|Character Bytes available.
-
- JGPrint can cope with a text that sends any byte from 1 to 255 to the printer.
- In order to send 0 to the printer, JGPrint requires that you use the hatty
- vector mapping, viz ^^c, where you have defined ^^c to be 0. In JGPrint, I
- usually use ^^0 (in JGDoc you must use @).
-
- If the byte sent is less than 32, JGPrint precedes it by the printer code
- Tochar1; if Tochar1 is null or forbidden, it precedes it with Tochars, and
- follows it with Toctrl.
-
- You may well want to use the hatty mapping for other control characters that
- your editor may find some difficulty with, eg 10 or 13.
-
- .col
- \s2|Italics
-
- The user switches on Italics by the backslash \\I, off by the backslash \\J.
- JGPrint will then send to the printer the bytes of the configuration file
- strings Ital and Ital0 respectively. Typically, these might be 'I' and 'J'
- respectively, since s.esc true will precede these strings with 27<esc>. The
- initial default is italics off.
-
- This typifies how typestyles are changed; a backslash directive causes the
- corresponding code found in the configuration file to be sent to the printer.
- See below for how to use JGCnfig to set Ital/Ital0.
-
- .col
- \s2|Bold
-
- \\E, \\F sets/unsets emphasised, using the code strings Emph, Emph0. \\E9, \\F9
- sets/unsets double-strike using Dstrk/Dstrk0. InitEmph in the configuration file
- sets the default state. For 9 levels of bold and faint respectively see the
- reference manual.
-
- .col
- \s2|Underlined
-
- \\U, \\V sets/unsets comtinuous underlining using the code strings Uln/Uln0.
- \\W underlines non\-blank characters, \\X underlines letters and digits only.
-
- See the reference manual for more style directives.
-
- ,col
- \s2|Quiet or Draft
-
- \\Y, \\Z were originally designed, using the code strings Qt and Qt0, to turn
- on/off quiet printing; recently, however, I have been using these codes to turn
- on and off draft style. I am proposing to add init draft to the configuration
- parameters.
-
- .col
- \s2|Incremental
-
- \\K and \\L were originlally intended to switch on and off incremental printing.
- The BJ-10e provides a continuous overline, and in that configuration I have
- canabalised the incremental printing facilities to provide this. There may be
- some problems with overlined margins here, unless absolute horizontal
- positioning (see JGPrPrmDoc) is used.
-
- .col
- \s2|Dotty style directives
-
- As suggested for proportional spacing above, it is often useful to set a style
- directive by a dotty command, particularly to set the base layout before any
- characters are printed. The Dotty directive .\\ \\<sl>...\\<sn> where
- <sl>...<sn> are style directive lettera that allows this to be done. Not all
- style directives are allowed, but all those listed above except italics are.
- Indeed, at present I am requiring \\P, \\Q, \\Y, \\Z only appear in this dotty
- form.
-
- .col
- \s2|Varying output according to To:
-
- \\q returns a character according to how To: was answered in the initial
- dialogue ('d' in Doc mode). Thus:\|
- ..if \\q eq p\|
- .......\|
- ..fi'\|
- will only include .... when JGPrinting direct to printer.
-
- This facility is under development and subject to variation. You should use an
- experimental file to check the actual character returned for the To: you are
- interested in. Comments on its use are welcomed.
-
- In JGEd, F1 + 0 lists all dotties and backslashes; in JGCnfigInfo, the
- printer codes they are related to are made available online in JGConfig.
-
-
- .col
- \s1|Printer Configurations
-
- JGPr(int)Par(ameter)Doc gives fuller documentation oriented to the supposition
- that you are producing a new configuration file. The discussion here is aimed to
- provide a background for advanced JGPrint users.
-
- .if \u10 eq arc
- The file !jgp.info.JGCfginfo lists, with comments, the configuration parameters
- that can be set using JGConfig. These should be consulted to discover the
- flexibility possible. It is available online while configuring.
-
- The printer configurations are held in a subdirectory pa relative to !JGPrint
- and the proportional spacing files in a subdirectory q.
- .fi
- .if \u10 eq msdos
- The file JGCfg.inf lists, with comments, the configuration parameters
- that can be set using JGConfig. These should be consulted to discover the
- flexibility possible. It is available online while configuring.
-
- The Printer configurations have extensions .PPP, and the proportional spacing
- files have extensions .QQQ, both in the same directory as JGPrint.
- .fi
- Each of these kinds of files has a very complicated internal structure, and
- should only be examined or modified through the programme JGConfig, which, in
- the desktop, is best accessed via the JGPrint icon bar icon's menu.
-
- The proportional spacing files are independent of the word\-size of the
- implementation, but the configuration files and (A)JGCdnames(.CHR) depend on the
- wordsize. Therefore all such files can be exchanged between the MSDOS and the
- Arc implementation, but only the proportional character files can be exchanged
- with the BBC implementation (now obsolescent). NB. if your printer has many
- alphabets, it is likely that you will have to use different configuration files
- to use them outside the standard 32-126 set. (And some of these may differ in
- different alphabets.)
-
- The file (A)JGCdnames(.CHR) names the code strings and the size values in the
- configuration files, and must be present; this, also, can only be accessed
- comprehensibly through JGConfig. You can consistently change the names by which
- these code strings and size values are named by denying the "Keep current Names?
- (Y):" prompt in JGConfig's dialogue.
-
- Altering a configuration file, or making a new one, is a very straightforward,
- if tedious, operation. JGConfig provides very extensive prompting to remind you
- of what to do at every stage. There is online documentation of what each code
- string or size parameter signifies in the file JGCfginfo, a text file with
- certain structures in it.
-
- I fear that the following description of how to use JGConfig is more opaque than
- actually doing so, and does not suggest the flexibility and security that the
- prompts, together with the trace left on the screen, provide.
-
- JGConfig can be entered from the commandline or via the JGPrint iconbar icon menu;
- it offers you a choice of the available configuration files to access, beginning
- with the one currently selected. Given your choice, it will confirm with the
- string in the pseudo\-code named 'printer' in that configuration file. In the
- desktop, it initially proposes the preferred configuration.
-
- .if \u10 eq arc
- A sequence of clicks on Select will take you through JGConfig in the most
- commonly used way; however, to actually change the configuration file, you will
- have to use the keyboard, following the prompts.
- .fi
-
- You are then prompted Codes\/Sizes\/Hatties\/Proportional\/Dump\/eXit. You
- return to this multiway switch when you complete your work for any C/S/H/P
- choice. X goes to the latent window, whence you can save, quit or continue.
- You can also reach this window by clicking menu from most of JGConfig's prompts.
-
- [Remark: This is the only point in the JGP suite where I think a menu would be
- better than the dialogue used; everywhere else, JGPrint's dialogue seems to me as
- convenient as a menu. See discussion in JGDiscuss.]
-
- D dumps to a file the code strings, size values and proportional spacing values
- of the chosen configuration. I recommend this as the first thing to do if you
- want to explore JGCnfig. You can, of course, print such a file out for elbow
- reference.
-
- P enables you to set the proportional spacing width of each character in one of
- two 'fonts' in the file named by the pseudo\-code string Propcharwidth. See
- below for how these are to be interpreted.
-
- H enables you to set a mapping ^^<char> --> <byte> which enables non\-standard
- characters to be printed from pure ascii texts. If your editor allows you to put
- bytes other than those between 32 and 127 into your text it might be better
- to use your editor rather than this facility. See Exchars in Xmp for an example
- and further discussion.
-
- C and S access, respectively, the the code strings and and size values
- respectively. Answer Y to "Keep current Names" (See reference manual). You will
- be prompted to have listed for you the names under which they are known unless
- you say you know the name of the Code/Size you want to examine or modify.
-
- This brief description should help you start to find your way around the
- Configuration process made available by JGConfig; the prompts will ensure that
- you do not lose your way.
-
- In the code strings provided, %<letter> specifies how parameters should be
- realised for specific printers in codes that require, for example, a number to
- specify how far to move. 'I' and 'E', given as examples above, give bytes as
- Epson printers require. 'J' and 'V' give signed numerals, as HP requires. See
- 'JGCodeInfo' for details of the letters available, with code that interprets
- parameters for each %<letter>.
-
- .col
- \s2|New configuration files.
-
- Suppose you have a configuration file Printer for a printer called p1, and want
- to produce one for a new printer called p2. First copy Printer Newprinter, then
- enter !JGConfig, selecting Newprinter from the files offered to you.
-
- You will get the response "Configured for p1, OK?(Y) ", which is to be a lie.
- Nevertheless, respond Y/y and then C/c. (click select twice.)
-
- The pseudo-code string you want is called 'printer', and you should follow the
- prompts to reach it. It will show you the current string "'p' + '1'", with a
- prompt to Hide/Keep/Info/Modify. Respond M/m(click Adjust).
-
- You want to put in the string "'p' + '2'", and as you will see from the prompts,
- the sequence of key strokes - ' 2 < will cancel 1 and insert 2, leaving you with
- the desired "'p' + '2'.
-
- '>' will enable you to leave the code configuration section. Exit by X, and now
- when Newprinter is selected, "Configured for" will tell the truth.
-
- .if \u10 eq arc
- Alternatively click menu at the multiway switch and choose Save + Exit on the
- menu at the latent window.
-
- Other configuration strings and values can be changed similarly.
-
- In my experience, different Epson Style files often only require Horunit and
- Vertunit to be reset, and everything but JGFJ and FGFJ will be OK. These two
- require the proportional spacing table to be mofified, and often hmi. See the
- the online file !JGP.Info.JGCfgInfo for further details. The advanced
- documentation JGCodeInfo may also be helpful if you need to make more radical
- changes.
-
- It may be that JGPrinting small test files to D will help you ensure that the
- strings and values you put in produces the effects you want from your
- new printer; See also D above.
-
- .col
- \s2|JGPrint's 'Fonts'
-
- If you are only configuring for a fixed\-width character set, all you need to
- know is the Pitch or 'Characters per Inch' that you get from the dotties .CPI
- and .NLQ. .cpi {5|6|10|12} sets the pitch to 5,...,12. However, the widths of
- ..nlq, .cpi 8, .cpi12 and .cpi 17, are given explicitly by the size parameters nlqw, 8w
- and 17w. This is to enable you to use, say .cpi 17 for charactersets with a
- pitch, say, of 15 or 16.667. These are to be set in terms of JGPrint's
- internal horizontal units (1/3600), so that 216, say, will give a pitch of
- 16.667 characters per inch. Your printer may also require you to set a height.
- JGPrint provides a directive .Point <n>, which will use the 'point' command to
- send <n> through to the printer. Point is remembered as part of a configuration,
- and is used by 'scaled' configurations to discover the width of proportionally
- spaced characters.
-
- This Characterwidth(Cw.) can now be used to set margins and tabs in terms of
- character\-width, without needing to think about JGPrint's internal measures.
- When you have proportionally spaced characters, this still gives the notional
- width of a column when setting margins and tabs, although actual character
- widths are not involved.
-
- If your printer provides you with characters of varying width, you must provide
- JGPrint with much more information in your configuration files. JGPrint calls
- this information a font, though it is only a small part of what makes up a font
- in other contexts; JGPrint does not need information about the shape of
- characters.
-
- See JGPrParmDoc for further details.