Browse Prior Art Database

Data Display and Proportional Spacing

IP.com Disclosure Number: IPCOM000039320D
Original Publication Date: 1987-May-01
Included in the Prior Art Database: 2005-Feb-01
Document File: 5 page(s) / 41K

Publishing Venue

IBM

Related People

Cowlishaw, MF: AUTHOR [+4]

Abstract

A proportional spacing algorithm is disclosed in which an increased number of characters is to be fitted into a line with a limited resolution. This is provided by adjusting the intervening spacing according to the actual versus the theoretical position of the characters subject to the constraint of having fixed and variable position characters so that tabular data does not become misaligned. Also considered is the case where fixed position data would lead to maximum line length being exceeded. It is sometimes highly desirable to display data on a device that strictly speaking does not have sufficient resolution. For example, it may be necessary to display data from an 80-column display screen on a device that has only 320 picture elements (pels) across.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 32% of the total text.

Page 1 of 5

Data Display and Proportional Spacing

A proportional spacing algorithm is disclosed in which an increased number of characters is to be fitted into a line with a limited resolution. This is provided by adjusting the intervening spacing according to the actual versus the theoretical position of the characters subject to the constraint of having fixed and variable position characters so that tabular data does not become misaligned. Also considered is the case where fixed position data would lead to maximum line length being exceeded. It is sometimes highly desirable to display data on a device that strictly speaking does not have sufficient resolution. For example, it may be necessary to display data from an 80-column display screen on a device that has only 320 picture elements (pels) across. At first sight, it would seem to be difficult to display 80 characters using only 320 pels since this allows just 4 pels per character, and some characters (e.g., W and
M), by definition, require more than four pels. The problem of getting a maximum amount of textual information on a line has long been solved, however, and requires the use of proportional spacing. Proportional spacing, however, is generally considered inappropriate in the essentially monospaced environment of computer displays. Much data is tabular, program data has aligned and indented columns of text, and business graphics are often composed of characters that must be properly vertically aligned. The basic algorithm may be embodied in hardware or in software, and has the following features: Alphabetic information is always proportionally spaced

Graphical and special characters are always positioned

correctly on the screen. This is extremely important

since misalignment of verticals in diagrams is imme-

diately noticeable and renders a display unacceptable.

The start of every word will tend to be in the correct

position and is guaranteed to be so at the start of a

sentence or after any other gap of more than one blank.

The algorithm is one pass. Two counters are kept as an output line is built. One is the 'exact' counter, which (for 80-character output in 320 pels) is stepped by 4 pels for each character processed - this calculates the 'ideal' monospaced position for each character.

The other is the current pointer, which shows the current position in the output line - the position that we expect to place the next character. Each character in the input stream is inspected: If it is one of those designated as textual

(i.e., alphabetic, common punctuation, and

optionally numerical), then it is placed in the

output line at the current pointer position,

and the current pointer is stepped by the width

of the character.

If it is a blank, then:

If the last character was a blank, then we have

two or more blanks in a row and therefore set

the current pointer to the exact pointer (i.e.,

the next character will be exactly positioned

1

Page 2 of 5

at the 'ideal' position for it, whatever...