originating document: layout.wpd McCrea, June 10/98

layout - HPGL graphic layout editor to assembles output graphs or graphics created by the analysis software (e. g. analysis, qm) into a single file that can be printed or exported to other programs.
layout file or layout -u file or layout -p file

*********** overview and history
Layout was created during a time in which carnivorous reptiles ruled the earth and few comprehensive programs for dealing with text and graphics existed. The decision was made to use HPGL as the standard graphics output from all analysis programs. HPGL is a language specification developed for pen plotters by Hewlet Packard. It is vector based and not a bit map format. Unix programs (Qnx, Linux) that create HPGL data files include, analysis, qm, raster, wtsum and layout. HPGL has become a defacto industry standard and most word processors and graphics programs can directly import and export HPGL files.
Programs such as Corel Draw permit easier manipulation of text and graphics and publication quality outputs. As such, most final versions of our figures for publication or making slides are now produced in CorelDraw. Analysed data is exported a file in HPGL format and then moved to Windows machine and imported into CorelDraw. HPGL files can be interpreted and printed directly by HP laser printers. Thus this format remains very flexible and useful for our files.
When layout was written, it was important to have complete control of HP plotters like the HP7475 and its relatives. With the demise of plotters in the lab, some aspects of the layout program are no longer very useful. Descriptions of these little used options are in
smaller green font in this Manual and in most cases can be ignored.
Layout remains very useful for automated analyses where"templates" are created into which the output of analyses can be read and plotted automatically. Multiple graph(ic)s can be printed on a single page. Because layout was created to compliment the analysis programs running in the Unix environment, scripts can be written to link the operations of analysis, graphics assembly and printing and automate data manipulation.
********** printing vs. plotting
In this documentation, the terms print and plot are used interchangeably. You should be aware that printing and plotting to a HP laser printer are different. A print operation generates a raster image of the file to be output and sends that image to the printer. A plot operation sends vectors to the printer that must be interpreted before output. HPGL vector files can be very large and may cause problems with printers with insufficient memory. The hardcopy program is used internally by layout for HPGL output. The sdump program is used raster graphics output. Hardcopy and sdump can also be used directly from the command line. As far as the user is concerned, the major difference between printing and plotting to a laser printer is the scaling of the data with a plot operation creating an image that fills more of the paper than a screen dump.

**********DESCRIPTION
Layout allows you to create and maintain layout files, which specify the layout of plots on a page. The HP plotter spooler program (hardcopy (1)), plots only one job (one graph) per page. With layout, you can create a composite file in which several plots are placed on a single page in "panels". Panels can be filled with HPGL plot files, and the whole layout printed (plotted) or saved to disk as a single page.
If the file argument is given, layout loads the named file for editiing. This file must be in the HPGL format. Most often the graphics file was created using the Plot/FIle or Hardcopy/File operation from analysis or qm. This file can have any valid name but for subsequent importing into Corel draw, we suggest naming HPGL files with a ".plt" extension.
If the -u option is specified, the file argument must be given. Layout will read this file, then perform the Use operation (also described below), then quit. The most common use of the -u option is to automate the printing of graphs. To accomplish this a layout file must be first created that is used as a template for subsequent plotting. This template file is created in layout and is simply a layout file in which panels are added, sized and labeled but not "filled" with data. This file is saved and used with the layout -u command within a script file.

Insert script here For example, assume that you have created a template file with the name of "4panels" in which there are 4 (empty) panels on a page. The following script directs data files into layout using this template. In this script, the first 4 .plt files found in the current directory are assembled in layout and printed using hardcopy. Note that the page will only be plotted (printed) when the four panels are filled.
If the -p option is specified, the file argument must be given. Layout will read this file, then perform the equivalent of a Plot/File operation, with the Plot/All-graphics option set (both described below), sending the HPGL code to the standard output. It then quits. The generated output can be redirected to a file, or piped to hardcopy. This allows printing an existing layout file, without entering layout 's editing mode.
With either the -p or -u option specified, you can give the file name as simply "-" , and layout will read the layout file from the standard input. This allows you to pipe a layout file to be plotted or used, without requiring a temporary file.

********** USAGE
If the -p and -u options are not specified, layout enters its editing mode for adding, deleting and changing panels. A layout file may contain up to 256 panels. Each panel is numbered sequentially with its number appearing in the bottom-left corner. panel. Panel order (i.e. numbers) can be changed (see below). Layout is also used to put text labels in these panels and attaches file names to panels. Layout does not modify the original files in any way. The output of layout may be sent to the printer or exported to a file (see Plotting below)
An arrow also appears in each panel, indicating the orientation (normal or rotated 90 degrees) of the graphics which will be plotted in this panel. An operation is initiated by typing the first letter of an item in the menu line. You can also step through the menu using the space bar and the backspace (or erase) key, to highlight the item you want, then press RETURN to select that item.

***********At the bottom of the display, layout prints the following menu:
Add add a new panel to the layout
Change
change the size or location of an existing panel.
Delete delete a panel
Empty
unlink a data file from a panel (remove panel contents)
Fill
link a data file to a panel (attach a graphic file to a panel)
Invert
flip X or Y orientation of panels
Layout
load on a new layout file
Number
renumber panels
Plot
sub menu for printing data or saving to a file in HPGL format
Quit
Rotate
landscape or portrait panel orientation
Set-page
set page origin on HP plotters
Text
sub menu for creation and manipulation of text labels
Use
send the current layout to the printer, used in scripts and with the -u option
View
display graphics, panels or both
Write
save the current layout file

Add the next panel number to the end of the sequence. Select the place on the page to put the panel using the mouse. Left click to set the panel origin (usually the bottom-left corner) Middle click to set the opposite (top-right) corner. You can hold down either button to drag the corresponding corner to the location you want, or just press to place the corner where the cursor is. You may reposition either corner, until the panel looks right. When moving the panel origin, the opposite corner is moved as well, to maintain the size of the panel. Setting the opposite corner alone allows the panel to be resized. Right clicking (or typing a "d" on the keyboard) quits the panel positioning operation.
Fine adjustments may be made to the position of the last corner selected (or of the origin, initially) by using the arrow keys in single grid increments (see below). The last position adjustment can be undone by using the U key.
You can copy an existing panel size by using the # key. You are prompted for the number of the panel to be copied. You can then move the new panel to its desired position with the mouse. Depressing the left mouse button while moving the cursor. will keeping the panel size constant.
As you adjust the position of either corner of a panel, the top status line is updated to indicate the new position of each corner, either in millimetres or as a percentage of the usable page size. Typing the % key will toggle the display between these two units of measure.
Initially, panel bounds may be adjusted in increments of one plotter unit, or one 40th of a millimetre. Typing the + key allows you to set up a "grid" of a lower resolution, to facilitate alignment of panels to a particular spacing, by specifying the grid spacing in millimetres. Subsequent adjustments of the panel bounds will be aligned to an invisible grid of the given spacing. Specifying a grid spacing of less than 0.025, such as 0, will reset the grid spacing to 0.025 millimetres, i.e. plotter units. Larger grid spacings are rounded to the nearest multiple of 0.025.
Press D or the Right mouse button when you are done, to go on to the next panel. To stop adding panels, and return to the main menu, press button D (or Right mouse) again, before setting either of the corners. This operation also terminates automatically if 256 panels are created.
Change the size or location of an existing panel. If there is more than one panel, you are prompted to enter the number of the panel you wish to change; type in the panel number, then hit RETURN. Use the mouse to set the bottom-left and top-right coners, as for the Add operation above. Right mouse click (or type D) to return to the main menu.

Panel size or location can be changed directly with the mouse by clicking on it. (This can only be done when the display is in the "panel view" mode, and the program is waiting for you to make a menu selection.) You then set the bottom-left and top-right corners, as for the Add operation above. Press button D once when you are done, to return to the menu.
Delete any panel. You are prompted to enter the number of the panel you wish to delete. Once this panel is deleted, all panels after this one are shifted down in the sequence; i.e. they are renumbered.
Empty a panel, i.e. remove any graph that is attached to the panel. You are prompted for the number of the panel to be emptied. The File name attached to the specified panel is removed and can be re-attached to a panel with the Fill operation. The Empty operation does not delete labels that were added by the Text/Add, Text/Copy or Text/Grab-text operations, if any exist in the panel. The independence of data files and labels is very useful for automated data analysis. Text labels in the panels can be removed using the Text/Delete operation.
Fill a panel, i.e. attach a graph(ic) stored in a plot file to the panel. If there are no panels, one is created which occupies the entire usable area of the page. If there is more than one panel, you are prompted for the number of the panel to be filled; type in the panel number, then hit RETURN. Your are then prompted for the name of a plot file to attach to the panel which is then indicated on the display next to the panel number.
For those interested in programming, the section "HPGL FILES" below has a description of valid plot file format.
Note that plot files are not loaded into the current layout; the name of the file is simply stored for future access. Thus the plot file should not be renamed, moved, or removed without making the corresponding change to any panel that refers to the file.
Invert flips panels in the X, Y or in Both directions. Inverting panels is most useful when switching between small and large page sizes since the plotter performs rotation differently for the two page sizes.
Layout chooses a new layout file to edit. If you have made any changes to the current layout you will be asked whether you want to save the current layout. You are prompted to enter the name of the new layout file to be edited. If the file is a valid layout file, its panels will be displayed. If you specify the name of a file that does not exist yet, the top line of the display will indicate that this is a new file, and you will start with a clear page of a default size, usually A-size, just as you do when you invoke layout without a file argument.
Number renumbers panels. You are prompted for the number of the panel you wish to renumber. and then the new panel number. The chosen panel is removed from the sequence, ad reinserted at its new position. All panels between these two positions are shifted accordingly. For example, if panel 2 is moved to 4, then panel 3 is moved to 2, and panel 4 is moved to 3.

******************
Plot
brings up the plotting subsystem menu:
All-graphics File Plotter Quit Screen Text Video
Plot/All-graphics This selection allows you to change the "plot all graphics" option. If this option is disabled, the generated plot will be equivalent to the current "view" on the screen. If enabled, as is the case initially, the generated plot will be the complete layout with all graphics included, equivalent to the view generated by View/Graphics , regardless of the current view on the screen. This is useful when the layout is complex, and would take too long to view on screen before plotting it.
Plot/File stores data and text assembled in layout in a file. This file is a text file with the graphics in HPGL format. The file can be exported to the PC environment and read into a word processor or graphics program. You can also print the layout file in the Unix environment at a later time, using hardcopy (1). This file can have any valid name but for subsequent compatibility with Corel draw, name all HPGL files with a ".plt" extension. You must supply the extension, layout does not append an extension.
Plot/Plotter plots the graph directly on the plotter which in most cases is an HP compatible laser printer. The hardcopy program is invoked to plot the displayed graph in vector format. Before beginning this operation, make sure the plotter is powered up, on-line, and that a clean sheet of paper has been loaded. Also make sure the plotter's autoload option isenabled. If large files crash the memory of the printer device, buy more memory for the printer, or use the Plot/Video option.
When plotting, whether to a file or to the plotter, layout will plot each panel in order of panel number. For a given panel, it will first plot out the content of the attached plot file. This is followed by all line segments, boxes, and text labels using the plotter's built-in font, in order of pen number. Finally, text labels using Hershey fonts are plotted, also in order of pen number.
Plot/Quit returns to the main menu of layout.
Plot/Screen This selection allows you to change the screen redraw option. If this option is enabled, the graph will be redrawn on the screen while it is being sent to the file or the spooler. If disabled, the current contents of the screen will remain, while the plot is generated. (This option affects only the "panel view;" the screen is not redrawn when plotting the "graphics view.")
Plot/Text This selection allows you to change the plot text option. If this option is disabled, the generated plot will not contain any text; all titles and labels will be stripped from it, leaving only the axes, tick marks, data points, etc. This is useful when the plot is reduced in size to the point where the text would be illegible. If enabled, the generated graph will be complete with all titles and labels.
Plot/Video This selection does not affect the pen plotter, but instead produces a printed copy of the video display's current contents (a screen dump) by invoking the sdump program. This is a raster image. The same thing can be accomplished by pressing the Control-B . The "Plot/Video" operation has the advantage that it can be used even when the program is reading its commands from a file, rather than the terminal. Also, the "Plot/Video" operation clears the menu area before performing the screen dump.

Quit exits layout.
Rotate changes panel orientation to either no rotation or a 90 degree clockwise rotation. If there are no panels, one is created which occupies the entire usable area of the page. If there is more than one panel, you are prompted to enter the number of the panel you wish to rotate. The arrow displayed in the panel will change direction to indicate the new location of the top edge.
When plotting on large sheets of paper, the HP 7550A plotter rotates in the counter-clockwise direction, rather than clockwise. Use the Set-page operation to tell the layout program which page size you are using; rotated panels will then appear top edge left for large sheets.
Set-page specifies HP plotter P1 and P2, parameters which set page size. In most cases ignore this command and change settings in your favourite graphics program on the PC (e. g. Corel Draw). The default values correspond to A-size paper (8.5 x 11), or for the paper size specified by the HPGLPAGE environment variable. If you use a different size of paper, the HP plotter's default P1 and P2 will change accordingly. You must then specify these new values in the layout file, so that the panel coordinates are rescaled for this new page size. You are presented with the following secondary menu:
1->A-size 2->B-size 3->A3-size 4->A4-size Margins P1-P2 Quit Resize
The first four selections set P1 and P2 to the plotter's defaults for that size of paper. The panels will be rescaled to fit within these bounds, and the panels will be redisplayed.
The P1-P2 selection allows you to specify values for the HP plotter's P1 and P2 different than those available for standard page sizes. You are prompted to enter, one at a time, the P1 X and Y coordinates, then the P2 X and Y coordinates. If, for any of these, you just hit RETURN without entering a number, the current value (shown after the cursor in the prompt) will be used. Typing a control-D will cause this operation to terminate, without changing anything. Once all four numbers have been entered, the panels will be rescaled to fit within the new P1 and P2.
The Margins selection allows you to enable or disable the "margin restriction" option. When this option is enabled, as it is initially, the setting of panel bounds (by means of the Add or Change operations above) is restricted to the area defined by the current P1 and P2 values. If you try to set a panel corner outside of these margins, it will be set to the nearest margin. By disabling this option, panels bounds can be set freely outside of the margins, or even outside of the hard-clip limits. When this option is changed, the screen is redrawn: when disabled, the page is reduced on screen to allow panel bounds to be set outside of the hard-clip limits; when enabled, the page is expanded to fill the drawing area on screen.
The Resize selection alows you to resize all panels simultaneously (as is done automatically whenever you change P1 and P2), but without changing the current P1 and P2. When this operation is selected, a temporary panel is created, with its bounds set to the current P1 and P2. You are then allowed to move or resize this panel, as for the Change operation above. Once you finish changing this panel, by pressing button .BR D , all other panels will be resized and moved proportionally, and the temporary panel will be deleted. The panels will then be redisplayed.
The Quit selection returns you to the main menu, without changing P1 and P2. .SS Text This selection allows you to add and edit text labels in a panel. If there are no panels, one is created for you, which will occupy the entire usable area of the page. If there is more than one panel, you are prompted for the number of the panel to be edited; type in the panel number, then hit RETURN. The graph and labels for the panel are displayed on the screen, and you are given a secondary menu. See "TEXT LABELING" below, for a description of the text labeling sub-system.
Note that if the Plot/All-graphics option is not currently set, a subsequent Plot/File or Plot/Plotter operation will produce a plot of this panel, rather than all panels, unless you perform another View/Graphics , View/Panels or View/Both operation, or set the Plot/All-graphics option, before plotting.

TEXT displays a single panel on screen, and allows editing text labels. The panel's labels are stored as part of the layout file, and are independent of the HPGL plot file attached to the panel. The layout program never directly modifies the attached plot files.
Many of the layout commands available for dealing with text are no longer useful. It is far easier to deal with text using a high end program such as Corel Draw.
There are two approaches to editing labels for a panel. You can begin with an HPGL plot file that contains only graphics, and no text labels. You can then add labels, one at a time, and place them at the desired locations over the displayed graph. For simple graphs that don't require many labels, this is quite acceptable and fairly simple.
The other approach is preferable when you want to modify a graph with several labels, or when you only want to make simple changes to the labels of a graph. You can begin with a plot file that contains both graphics and text labels. You then perform a Grab-text operation on the panel, as described below. This copies the labels from the HPGL plot file into the current panel of the layout file, so that you can edit them, resize them, and so on. It also sets the "ignore text" option for this panel, so that the old labels, which are still in the HPGL plot file, will not be displayed or plotted.

A new menu is presented, allowing you to add and change labels, and modify various label parameters. The choices are:
Add Copy Delete Edit Font Grab-text Ignore Line Move Origin Pen Quit Rotate Size View

Many of these operations require that you first select one or more labels to be modified, before you select the operation from the menu. You can do this, while at the menu, by pointing to individual labels with the pointing device, and clicking one of its buttons. Clicking button A will unselect all other labels, and select only the one to which you are pointing. Clicking button B will select the label to which you are pointing, if not already selected, or unselect it otherwise. When labels are selected, boxes appear around their text, and a small diamond-shaped marker indicates the origin of each selected label. Clicking both buttons A and B , simultaneously, will select all labels in the panel. Clicking button A , when you are not pointing to any label, will unselect all labels.
When labels overlap, even partially, the label selected by pointing and clicking may not be the one you want. Layout always selects themost recently created label when the cursor points to more than one label. (You can consider this label to be in "front" of the others.) The "front to back" order of labels can be changed by using button C , to move all currently selected labels to the "back" and unselect them, before selecting a new label from the front. If there are no labels currently selected, button C is equivalent to button A .
You can also hold down one of these buttons, and drag the pointing device along. An expanding box will appear, from the point where you started, up to the current cursor position. When you release the button, all labels surrounded by the box will be selected. If you started by holding down button A , only these labels are selected; any others are unselected. If you started by holding down button B , these labels are selected in addition to any others already selected. Button C is equivalent to button A , except that previously selected labels are moved to the back before being unselected.

Text/Add This selection allows you to add a new label to the panel. Any selected labels are unselected. You are then prompted for the text string to be added. Enter the line of text you want, and hit RETURN. The new label is placed at the center of the panel, and a Move operation is automatically initiated, to allow you to place the label where you want it.
Text/Copy This selection allows you to copy an existing label, or group of labels, to a new location in the panel. The selected labels are unselected, and copied to the center of the panel. The new labels are then selected, and a Move operation is automatically initiated, to allow you to place the labels where you want them.
Text/Delete This selection allows you to remove unwanted labels from the panel. Any number of labels can be selected for this operation. To help prevent unfortunate accidents, you will be asked for confirmation before the label or labels are removed. Enter a Y to allow deletion to proceed.
Deleted labels are placed int a temporary buffer, called the paste buffer. Only labels deleted by the last Delete operation are kept in the paste buffer; previous deletions are then lost. The Undelete operation, below, allows you to retrieve the current contents of the paste buffer.
Text/Edit This selection allows you to change the text string of existing labels in the panel. You are prompted for the text string to replace that of the selected labels. If all selected labels have the same text, this will be shown as the default in the prompt. Enter the line of text you want, and hit RETURN. All selected labels will then be changed to the new text. If you just hit RETURN, without entering anything else, the old text will not be changed.
Text/Font This selection allows you to change various font-related parameters for the selected labels. You are given a menu of these parameters. Selecting Quit will bring you back to the Text menu. The other selections will prompt you for a new value for the chosen parameter. If all selected labels currently have the same value for this parameter, this value will appear as the default value in the prompt. If you just hit RETURN, without entering anything, the labels are not modified. If you enter a new value, this new value is applied to all selected labels.
If you select one of these parameters from the menu, and have not selected any labels in the panel, you are prompted for a new default value for the parameter, to be used by the next Add operation.
The Alternate selection allows you to set the "alternate character set number" for the labels. This is not needed unless the label contains SI and SO characters to change character sets. (Alternate character sets are supported by the HP plotters, but not by the HPGL emulator.)
The Chord selection allows you to set the "chord angle" used to draw curved characters in the HP 7550A plotter's built-in proportionally-spaced characters sets.
The Direction selection allows you to set the label direction in degrees. A direction of 0 s the normal left-to-right direction. Note that the label direction can also be changed, in 90 degree increments, using the Text/Rotate selection.
The Initial selection allows you to specify whether labels should begin with the alternate character set, rather than the standard one. This option is usually not needed, and should normally be left disabled.
The Name selection allows you to select the name of a Hershey font to be used to draw out the text of the labels. If you select one of these Hershey fonts, it will be used both on-screen and on the plotter, to display characters as a series of line segments. If you enter a hyphen .RB ( - ) instead, the default font is used. The default font is the built-in font for the plotter, or the default Hershey font (as described for the View/Graphics operation above) for on-screen emulation. When selecting a Hershey font, it is a good idea to also set the "standard character set number," described below, to .BR 10 , to select proportional spacing.
If the Hershey font name is preceded by a plus sign .RB ( + ), the character spacing, height, and width will be optimised for horizontal and vertical centering of the character; this can be useful when labels are used as marker characters on a graph. If the font name is preceded by an asterisk .RB ( * ), the text will be thickened - plotted several times, offset slightly each time both horizontally and vertically - to get more solid characters than usual. This is useful when using the multiple stroke character fonts, in large sizes, since it will fill in the gaps. Note that it also will greatly increase plotting time, as the label size increases (a doubling of label width will quadruple the number of times the label is plotted).
Font files can be in either binary or text format. If a binary version of a particular font exists, it is loaded; otherwise, the text version is loaded and converted to binary. The size, in binary format, is currently limited to 20K per font. The Hershey fonts currently avaiable are:
compgr complex Greek
compit complex italic
compro complex roman
compsc complex script
cyrillic complex Cyrillic
duplex duplex roman
gothen Gothic English
gothgr Gothic German
gothit Gothic Italian
greek simplex Greek
roman simplex roman
script simplex script
special special characters (symbols)
special2 more special characters
symbol other symbols
triplit triplex italic
triplro triplex roman
For all the fonts above, except for compgr, cyrillic, greek, special, special2 and symbol, the character set roughly corresponds to standard ASCII. There are also versions of these fonts corresponding to the HP Roman 8 character set, and the ISO 8 bit set with the Latin 1 extensions. These can be specified by adding the suffixes -r8 and -i8 for Roman 8 and ISO 8, respectively, to one of the above font names. For example, roman-i8 specifies the simplex roman font with the ISO Latin 1 extensions. There is also one Katakana font, .BR roman-kt , which follows the JISX0201 (1976) Katakana encoding; it contains simplex roman characters in the bottom half (ASCII-encoded), and simplex Katakana symbols in the upper half.
The Oblique selection allows you to set the slant angle for labels. Positive values give a forward slant, and negatives give a backward slant.
The Standard selection allows you to set the "standard character set number" for the labels. The two most commonly used values for this are .BR 0 , to get the standard ASCII fixed-spaced character set, or .BR 10 , to get the standard ASCII proportionally-spaced character set (on the HP 7550A). Other sets can be used on the plotter, but when Hershey fonts are used, only one character set exists for each font file, and this parameter simply determines whether spacing will be fixed or proportional.
Text/Grab-text This selection allows you to extract the text labels from the panel's attached PGL plot file. The attached plot file must contain text labels, as well as any graphics. This operation copies the labels from the HPGL plot file into the current panel of the layout file, so that you can edit them, resize them, and so on. It also sets the "ignore text" option for this panel, so that the old labels, which are still in the HPGL plot file, will not be displayed or plotted.
When the "ignore text" option is set, you can't perform another Grab-text operation on the panel. This is to prevent accidental extraction of labels, once you have already done so. You can circumvent this by temporarily disabling this option, then repeating the operation, but you should first delete all labels that would get in the way.
Text/Ignore This selection allows you to enable or disable the "ignore text" option for this panel. If enabled, the program will ignore all text labels in the attached plot file when plotting or displaying this panel. If disabled, the plot file is plotted or displayed in its entirety. Initially, this option is disabled, but is automatically enabled by the Grab-text operation. When you change this option, the panel is redisplayed accordingly.
Text/Line This selection allows you to convert the selected label or labels to line segments. This operation is meant as a "quick and dirty" way to add lines to existing graphics, until a more general set of graphics operations is added to the layout program. There is no good reason to use this command and ever reason to avoid it if the graphics file will ever be exported to another program.
The recommended way of creating line segments is first to use the Add operation above to create a label consisting of a single space character. The label can then be converted to a line segment with this operation, and then moved, rotated, and resized using the Move , Rotate , and Size/Width operations below, respectively. If a line-type other than solid (e.g. dashed or dotted) is desired, the text of the label can be changed, using the Edit operation, to any valid argument for the HPGL LT instruction. .. This selection allows you to add and modify line segments and oxes in the current panel. A new menu is presented. See "LINE DRAWING" below, for a description of the line drawing sub-system.
Text/Move This selection allows you to reposition selected labels anywhere in the panel, using the pointing device. If only one label is selected, you use the cursor to reposition the origin of that label. If more than one label is selected, a box is drawn around all of the selected labels, and you use the cursor to reposition the bottom left corner of that box; the labels are then displaced in the same direction, and by the same amount, as the box was.
In either case, left clicking moves the box that surrounds the label or labels to the current cursor position. As long as the button is held down, you can drag this box around on the display. When you release the button, the label or labels move to the new position of the box. Middle clicking has a similar effect, but the box is moved from its current position only in the X direction or only in the Y direction, whichever displacement of the cursor is larger.
Fine adjustments may be made to the position of selected labels by using the arrow keys for up, down, left, or right movement in single grid increments (grid spacing is adjustable, see below), respectively. You can undo the last change in position, while in the Move operation, by typing the U key.
As you move labels, or drag the box around, the top status line is updated to indicate the new position of the label origin, either in millimetres or as a percentage of the panel size. Typing the % key, while in the Move operation, will toggle the status display between these two units of measure.
Initially, label positions may be adjusted in increments of one plotter unit, or one 40th of a millimetre. Typing the + key allows you to set up a "grid" of a lower resolution, to facilitate alignment of labels to a particular spacing, byspecifying the grid spacing in millimetres. Subsequent adjustments of the label origin will be aligned to an invisible grid of the given spacing. Specifying a grid spacing of less than 0.025, such as 0, will reset the grid spacing to 0.025 millimetres, i.e. plotter units.
Text/Origin changes the way labels are aligned with respect to their origins (i. e. justification and alignment). You are given a menu of alignment types. Selecting Quit will bring you back to the Text menu.
The other selections will change the alignment of the selected labels. The alignment selections indicate where the label origin appears, with respect to the label text, but it is the text's position that will change when you make a selection, not the label's origin. For instance, if you select Top alignment for a label, the label text is moved down, so that its origin marker appears above it; the origin marker remains fixed in its position.
The Left , Centered and Right selections change the horizontal alignment of selected labels about their origins. The Bottom , Mid-height and Top selections change the vertical alignment of selected labels about their origins. The Outside selection will move the label text away from its origin, by some small amount. .The Inside selection will move the label text right back beside the origin. These last two selections have no visible effect on centered, mid-height labels.
The Number selection will prompt you for the label origin code used by the LO instruction in HPGL (for the HP 7550A). The current setting for this parameter appears as the default value in the prompt, as long as all selected labels have the same current value. If you enter a new value, this value is applied to all selected labels.
The Float and Hold selection will modify the way the program changes the label origin when using the above selections. By default, the label will float around a fixed origin marker, as described above. If you ask the program to hold the label, then the text will remain in place as the origin marker moves around the label. This is useful for graphs imported from other software packages, which don't set the label origins: you can hold a label, or several, in position then set the origin as desired, so that any later change in label size will make the text grow or shrink in the direction you want.
If you have not selected any labels in the panel, any of the label origin operations above will change the default label alignment for the next Add operation.
Text/Pen changes the pen number used to plot out the selected labels. It will prompt you for the pen number, and show you the current setting if it's the same for all selected labels. If you enter a new value, this value is applied to all selected labels. Setting the pen number to 0 suppresses display and plotting of selected labels, without actually deleting them. If you have not selected any labels in the panel, this operation will change the default pen number for the next Add operation.
Text/Quit returns you to the main layout menu.
Text/Rotate This selection allows you to rotate the selected labels around their origins. When invoked, the labels are rotated 90 degrees, counter-clockwise. It can be repeated any number of times, to obtain the desired rotation. It has no effect if no labels are selected.
Text/Size This selection allows you to change various size-related parameters for the selected labels. You are given a menu of these parameters. Selecting Quit will bring you back to the Text menu. The other selections will prompt you for a new value for the chosen parameter. If all selected labels currently have the same value for this parameter, this value will appear as the default value in the prompt. If you just hit RETURN, without entering anything, the labels are not modified. If you enter a new value, this new value is applied to all selected labels. If you select one of these parameters from the menu, and have not selected any labels in the panel, you are prompted for a new default value for the parameter, to be used by the next Add operation.
The Height selection allows you to set the character height for the labels. It corresponds approximately to the height of capital letters. The Width selection allows you to set the character width for the labels. It corresponds approximately to the width of the capital letter .BR X . These parameters are entered in millimetres, but are maintained as factors of the panel's height and width. If you change the size of the panel, or select a different page size, the character height and width are adjusted accordingly, to keep the same text proportions in the panel. For the Hershey fonts, best results are obtained when the width is 5/7ths of the height.
The Spacing selection allows you to set the extra spacing factor for the labels. This is entered as a factor, usually less than 1, which determines the extra spacing to insert between characters. (The actual amount of space will be this factor times 150% of the label's character width.) A small negative factor will tighten up the spacing, rather than increasing it.

Text/Undelete This selection allows you to retrieve deleted labels, stored in the paste buffer, and copy them to a new location in the panel. The current contents of the paste buffer are copied, and pasted into the current panel. If these labels are being undeleted for the first time, they are placed back where they were before being deleted; otherwise, they are placed in the center of the panel. In either case, the new labels are then selected, and a Move operation is automatically initiated, to allow you to place the labels where you want them.
You can use this operation to paste labels into the current panel, that had been deleted from another panel. If te two panels have different sizes, or different proportions, the labels will keep the same actual size as they had in the other panel, rather than the same proportions relative to the panel sizes. However, the placement of labels will be maintained relative to the panel dimensions. This may pose a problem with alignment of labels when you paste several labels in a panel of a different size.
Text/View This selection redisplays the graph and labels of the current panel. It can be used any time the screen has been cleared or garbled, to allow you to continue selecting labels and modifying them.
As labels are moved around on the display, they can overlap with and erase parts of the graph or parts of other labels. Also, if they overlap with the selection boxes or origin markers of other labels, they can cause parts of these boxes or markers to remain on the display after they are erased. A View operation will clean this up by redrawing everything.
Text/Line adds and modifies line segments and boxes in the current panel. A new menu is presented, allowing you the following choices: Align-labels Box-draw Draw-line Invert Quit Select Type Unselect
Line segments and boxes added by the Box-draw and Draw-line operations below are treated much like text labels. The Copy, Delete, Font/Direction, Move, Pen, Rotate, Size, and Undelete operations described above can all be applied to these graphics.
Text/Line/Align-labels aligns each selected text label, line segment, and box to a particular grid spacing. You are prompted for a grid spacing value, in millimetres. The origin of each selected label will then be aligned to the nearest increment for the given grid spacing. The specified grid remains in effect for any labels subsequently created or moved.
Text/Line/Box-draw draws one or more rectangular box outlines.
To draw a rectangle, point the cursor to the position where one corner of the box (the origin) is to be drawn, then press and hold the Left mouse button as you move the cursor to the position of the opposite corner. A box will be dragged along, following the cursor, as long as the button is pressed. Release the button to fix the opposite corner of the box at the current position. The box will be drawn using the default line type and pen number. To draw a square, holding the middle button while dragging the box.
Additional boxes may now be drawn by again pressing a button and dragging the cursor. Beginning a new box by pressing the middle button will cause the origin of the new box to be set to the position of the opposite corner of the last box, rather than the cursor position. When you are finished drawing boxes, right click to return to the menu. Pressing the % and + keys accomplishes the same thing as in the Change and Text/Move operations (toggle units and change grid spacing).
Text/Line/Draw-line draws one or more line segments.
To make arbitrary lines, point the cursor to the position where one end of the line segment (the origin) is to be drawn, then press the Left mouse button as you move the cursor to the position of the opposite end. A line will be dragged along, following the cursor, as long as the button is pressed. Release the button to fix the opposite end of the line segment at the current position. The line segment will be drawn using the default line type and pen number. To make horizontal or vertical lines, use the middle mouse button while dragging.
Additional line segments may now be drawn by again pressing a button and dragging the cursor. Beginning a new line segment by pressing the middle mouse button will cause the origin of the new line segment to be at the end point of the last line segment, rather than the cursor position. When you are finished drawing boxes, right clicking or typing D will return you to the menu. Pressing the % and + keys accomplishes the same thing as in the Change and Text/Move operations.
Text/Line/Invert This selection allows you to invert the selected lines, boxes, and text labels along either the X or Y axes, or both. A menu is presented, indicating the allowed choices. Selecting Quit returns you to the previous menu, without any changes.
Selecting X-flip inverts the X coordinate of all selected labels, resulting in a "mirror-image" flip along a centered vertical axis. Selecting Y-flip inverts the Y coordinate of all selected labels, resulting in a "mirror-image" flip along a centered horizontal axis. Selecting Both inverts both the X and Y coordinates, resulting in upside-down labels.
Text/Line/Quit returns to the Text menu.
Text/Line/Select This selection allows you to quickly select all labels, or groups of labels based on their type, rather than their position. A menu is presented, indicating the allowed choices. Selecting Quit returns you to the previous menu, without any changes.
Selecting All results in all boxes, lines, and text labels being selected. Boxes will select all boxes in the panel. Lines will do likewise for all line segments. Graphics will select all boxes and all line segments. Text will select all text labels in the panel.
Text/Line/Type This selection allows you to set or change the line type of selected box outlines and line segments. A menu is presented, indicating the allowed choices. Selecting Quit returns you to the previous menu, without any changes.
Selecting a digit in the range 0 to 6 will set the line type to solid, dotted, dashed, long-dashed, dashed/dotted, long/short-dashed, or long/short/short-dashed, respectively. Selecting Edit will result in a prompt allowing you to set or change the line typespecification, used by the HPGL LT instruction, for the selected lines and boxes. If only one graphic is selected, or if they all have the same line type, the prompt will show the current line type as the default.
Text/Unselect This selection allows you to quickly unselect all labels, or groups of labels based on their type, rather than their position. A menu is presented, indicating the allowed choices. The menu is the same as for Select above, except that each choice results in the applicable labels being unselected.

Use This selection causes the current layout to be used for subsequent plotting by the plotter spooler. The layout must contain at least one panel, and all panels must be completely empty (i.e. no plot files attached, and no graphics nor text labels added). A file is created, which controls the operation of the spooler. Once hardcopy (1) has been called enough times to use up all panels in the layout, this control file will be automatically removed, and hardcopy will revert to its normal mode of operation. If you want to reuse the same layout again, or use any other layout, this operation will have to be repeated. (Or you will have to invoke layout with the -u option.)
If this control file already exists at the time this operation is selected, you will be asked if it is OK to replace it. Type a Y to replace the control file, or an N to abort this operation, leaving the control file unchanged. One control file is permitted for each user-tty combination.
This operation exists for reverse compatibility with earlier versions of layout and may not be supported in future versions.
View specifies what is displayed on the screen. Options are Panels, Graphics or Both . Panels are normally displayed on screen, and the display will also revert to "panel view" whenever panels are to be added or changed in any way. Selecting Graphics allows you to preview on screen what the completed layout will look like, with the graphics attached to filled panels. Selecting Both will cause both the graphics and the panel outlines to be displayed.
The graphics are drawn on screen by emulating the HPGL stored in the attached plot files. Only a small subset of the full HPGL is emulated, which is adequate for handing output from programs like analysis (1). Text is drawn as a series of line segments, using the "roman" Hershey font by default. This default font can be changed by setting the environment variable VFONT to the name of any of the variable size fonts in the directory /usr/neuro/lib/font . Pen selections affect drawing colour, according to the environment variable SCRPENS , a comma-separated list of CNS names corresponding to each pen's colour.
Because of the limitations of the on-screen emulation, a valid plot file may look incomplete or incorrect on screen; however, the completed layout should be correct when plotted on a true HPGL device.
Note that the currently displayed view also affects a subsequent Plot/File or Plot/Plotter operation, if te Plot/All-graphics option is not currently set.
Write out the displayed panel layout to a file. You are first prompted for a file name. If you have not yet specified a file name, you will have to now. Otherwise, the name of the file you are editing will appear in the prompt, after the cursor. This file name will be used if you simply hit RETURN without typing a file name. The information is then written out to the file, which will be created if it does not exist. If there are any errors in accessing the file or writing out the data, a message will be printed.

!command Whenever the menu line has just been printed, instead of typing a letter to select a menu item, you can type an exclamation point, followed by any UNIX command, then hit RETURN. A UNIX shell is invoked to interpret and execute this command. You can recall and edit the last command entered, by hitting the "up arrow" key, or Control-K, after typing the exclamation point.

$ or % Whenever the menu line has just been printed, you can also type either a dollar sign to invoke an interactive Bourne shell, or a percent sign to invoke an interactive C shell. In either case, the shell will continue accepting commands until you type a .BR Control-D , to exit from the shell, and return to layout .

"? or /" Whenever the menu line has just been printed, you can also type either a question mark or slash to get a short description of all choices available in the current menu.



*********** Flooby Dust

HPGL FILES If a plot file is to be plotted in a panel, either by attaching it with a Fill operation, or by spooling it with hardcopy after a Use operation, it must adhere to the following constraints. The plot must be scalable, i.e. the file must contain an SC instruction, to set up user-unit scaling for all coordinates. It must also avoid instructions that require the specification of absolute units (e.g. centimetres or plotter units), such as SI and IW instructions. All output instructions (such as OA ", " OI ", " OP , etc.), digitiser instructions ( DC ", " DP , OD ), page feed instructions ( PG ", " AF , .BR AH ), the not-ready instruction ( NR ), and device-control instructions (escape sequences) must be avoided. Finally, the initialisation and setup instructions, IN ", " DF ", " RO , and IP , which are used by layout to set up a panel for a plot file, must be avoided, as they would override the panel setup (and cause the plot to "spill out" of its panel).

Because of this last constraint, completed layouts that are saved as plot files, by selecting Plot/File above, can not then be plotted within a panel of a subsequent layout.

In order to perform a Text/Grab-text operation on a panel, the attached plot file must contain label instructions ( LB , or BL and PB ). Without these, layout will not be able to extract the label text from the file. .so /usr/neuro/doc/xwinsupp.man

NOTES Layout must be run from a MASSCOMP graphics terminal, or X terminal, in order to view layouts and graphs. Graphics will not be displayed on other types of terminals.

When you tell layout to suppress the plotting of text in a graph, either by disabling the Plot/Text option, or by enabling the Text/Ignore option for one or more panels, it will plot the files in question by passing them through the HPGL emulator, rather than passing them directly to the output. Because of this, the limitations in the HPGL emulation can affect plotter output. This should not be a problem when using plot files generated by the Spinal CordResearch Centre's data capture and analysis software, but may cause problems if using HPGL plot files obtained from other sources.

Because layout reinitialises the plotter before plotting each panel in the layout file, any instructions you send to the plotter beforehand to set various plotting parameters (like VS , FS , or AS ) will have no effect. To get around this problem, you can set the environment variable HPGLINIT to the string of HPGL commands you want performed after an IN instruction. This string will be sent to the plotter for each panel plotted.

FILES
/usr/neuro/lib/font/*.vfb
/u /usr/neuro/spool/L* spooler control files
/usr/neuro/lib/font/*.vfb binary Hershey font files
/usr/lib/font/*.vf MASSCOMP Hershey font files

SEE ALSO analysis(1), emuhpgl(1), hardcopy(1), sdump(1) .br "HP 7550A Graphics Plotter Interfacing and Programming Manual"