ivi Formatting Commands and Operations

This section may be read in its entirety, or you may use the links below to consult a particular question.

The operations in this webpage are appropriate only for text. They also assume that ivi is being used with a fixed-width (i.e. a typing) font, so that the concept of character "column" is meaningful.

Tabs and Margins

Operation: Set/clear tab

Purpose: Set/clear a tab stop.

Default Key: CTRL V

Operation Number: 33

The operation sets or clears a tab stop in the current cursor column. Only the first 144 tabs can be changed by the user. Beyond that point, fixed tab stops exist every 8 characters.

Tabstops and margins are shown on the second line of the screen.

See also the TAb command.

Command: TAb

Purpose: Set evenly spaced tab stops.

Format: TA number

Parameter: This specifies the interval at which tab stops should be set. The first is set in column 1; the last is before column 144 (beyond which tab stops occupy fixed positions). Note that the new tab stops are additional to the existing ones. TA 0 clears all tab stops.


Operation: Tab cursor

Purpose: Move the cursor to next tab stop

Default Key: TAB

Operation Number: 34

If the cursor is before the left margin, tabbing moves it to the left margin. If it is beyond the last tabstop but before the right margin, tabbing moves it to the right margin. If it is past the right margin, tabbing moves it one position.

CTRL I is synonymous with TAB

Operation: Set left, right margin

Purpose: Set the margin to the cursor column

Default Keys: ESC ESC l, ESC ESC r

Operation Numbers: 70, 71

The margins are marked by the symbols < and > on the second line of the display. If both are in the same column, they are marked by the + symbol. The left margin cannot be set to follow the right, nor the right to precede the left.

See also the command MArgins.

Command: MArgins

Purpose: Set left and right margins

Format: MA number|number

Parameters: These represent the new left and right margins respectively.



Operation: Flush left

Purpose: Shift text to the left margin

Default Key: ESC ESC l (i.e. letter "l")

Operation Number: 72

Shifts the text so that its first character is in the left margin column.

Operation: Flush right

Purpose: Shift text to the right margin

Default Key: ESC ESC r

Operation Number: 73

Shift the text so that its last character is in the right margin column.

Operation: Centre

Purpose: Centre text between the margins

Default Key: ESC ESC c

Operation Number: 74

Operation: Align

Purpose: Shift a specified character to the right margin

Default Key: ESC ESC k char

Operation Number: 96

This is one of the few IVI operations (as distinct from commands) which require a parameter. In this case char denotes any displayable character. The effect of the operation is to find the first instance of char in the line, and shift the text so that this is in the right margin column.

The intent of this seemingly strange operation is to assist in building keyword-in-context indexes. A series of lines is prepared by typing or processing, perhaps using the "merge" operations. The keyword on each line is preceded by a character such as *. This operation can then be used to align the * symbols.

Doubtless some users have found other applications.

Formatting Paragraphs

Operation: Reformat

Purpose: Rearrange the paragraph starting at the cursor to fit between left and right margins

Default Key: CTRL r

Operation Number: 23

The Reformat operation begins at the cursor and continues until a blank line or a line not beginning in the left margin column is reached. Each reformatted line is filled with as many words as possible. Except possibly for the first line, the lines begin in the left margin. (The first line is treated slightly differently, in the manner users are likely to expect.)

If the JUstify option has been set, the lines other than the last will be "justified" by the insertion of extra spaces between words to align the ends of lines with the right margin. Given the fact that modern printing software achieves the same purpose with variable-width fonts and variable spacing, this hangover from former days is now spurious, but it remains present. By default it is disabled.

If the HYphen option has been set to levels 1, 2 or 3, words at the ends of lines other than the last may be hyphenated. The levels are increasingly permissive, and the higher ones sometimes produce poor results. By default, the level is set to 0, which allows hyphenation only where the user has typed - . Hyphens inserted by the operation are distinguished internally from those inserted by the user. The latter are preserved during subsequent reformats; the former are not.

After reformatting, the old paragraph is sent to corefile 0, from which it can be recovered if the user wants.

The operation can also be used to break a paragraph into two or to recombine two paragraphs into one.

Command: JUstify

Purpose: Enable or disable right justification during Reformat

Format: JU digit

Parameter: If digit = 0, justification is disabled; if digit = 1, justification is enabled.

Justification was designed for a time when IVI was being used to create typed documents. In the modern environment of variable-width fonts and variable spacing this is best left to the printing and formatting software. In short, there is no longer much justification for enabling this!!

Command: HYphens

Purpose: Set the hyphenation level for Reformat

Format: HY digit

Parameter: digit represents hyphenation quality. 0 denotes hyphenation only where the user has entered a hyphen (i.e. best quality), and 3 the worst.

Again, this is a holdover from earlier years. Implementation was done when computer memories were small, and the upper levels are not very good. (They are also oriented to English.) Like justification, hyphenation is now best left to printing and formatting software.

Automatic Formatting

Command: AUtowrap

Purpose: Enable or disable autowrap

Format: AU digit

Parameter: If digit = 0, autowrap is disabled; if digit = 1, it is enabled. The default is 0.

The autowrap feature saves thinking about the ends of lines while typing. If autowrap is enabled and you type after the right margin at the end of a line, a mini-reformat takes place. This carries words which run over and past the margin to the next line along with the cursor. In effect, the typed material if reformatted on the fly.

Command: DTab

Purpose: Enable or disable decimal tabbing

Format: DT digit

Parameter: If digit = 0, decimal tabbing is disabled; if digit = 1, it is enabled. The default is 0.

Decimal tabbing helps type columns of numbers with their decimal points aligned. Briefly this works as follows. With decimal tabbing enabled, TAB shifts the cursor to the next tabstop as usual. If, however, you now start to type a number (+ - digits), its characters are shifted leftwards until you type a decimal point (or indeed anything except + - digits), after which typing reverts to normal. The effect is to leave the decimal point in the tab column.

Be warned: if there are no spaces remaining before the number, the shift overwrites material earlier in the line.

Drawing Boxes

This may be a good place to mention another feature which helps to create text containing tables. Once again, it is relevant only when the resulting document will be displayed and printed in a fixed-width font. It also assumes that the font contains, in its upper range, the eleven box-drawing characters (corners, T-junctions, horizontal, vertical and cross), which were once prevalent in fonts, but which have now often been replaced with Latin-1 (accented) vowels. These eleven characters are simply text-characters which are used to form the desired boxes.

To simplify typing boxes, ivi provides a box-drawing mode, designated by GRAPHICS in the top right-hand corner of the display. It is entered with:

Operation: Box drawing

Purpose: Enter box drawing mode

Default Key: ESC ESC g

Operation Number: 94

In box drawing mode, the four arrow keys don't just move the cursor, they draw lines wherever the cursor goes. You don't have to be concerned with choosing the right line character. IVI selects the proper one automatically, modifying it as necessary. For example, if a character-space already has a horizontal line and you cross it vertically, the horizontal is replaced by a cross. If you turn a corner, ivi uses the proper corner symbol.

Typing DEL puts ivi into box erasing mode. Moving the cursor over a previously drawn line now erases it.

ESC ESC g cancels box erasing mode and restores box drawing mode.

RETURN cancels both modes

Most users will no doubt create boxes/tables using text-formatter features rather than the facilities described here. These, however, are very easy to use in the limited environment for which they were designed.