Rule-based text layout
First Claim
1. A computer program product, tangibly embodied on a machine-readable storage device, comprising instructions operable to cause data processing apparatus to:
- receive a spacing classification file specifying a classification for a Latin-based character set, the classification file being a text file containing in text form multiple character class definitions each defining a character class, each character class definition defining a character class as having one or more arbitrary Latin-based characters, the classification file further containing multiple inter-class spacing rules, in text form, each associated with an ordered pair of character classes, each inter-class spacing rule defining one or more spacing parameters for the ordered pair of character classes;
lay out a line of text comprising a sequence of Latin-based character glyphs derived from a sequence of characters using the inter-class spacing rules, the sequence of characters including one or more characters belonging to different character classes;
if the line of text needs to be compressed to a target line width, compress the line of text according to the inter-class spacing rules for each of two or more pairs of sequential characters in the sequence of characters, the inter-class spacing rules being defined in the spacing classification file, the inter-class spacing rules identifying a particular compression range for each pair of characters; and
if the line of text needs to be stretched to a target line width, decompress the line of text according to the inter-class spacing rules for each of two or more pairs of sequential characters in the sequence of characters, the inter-class spacing rules being defined in the spacing classification file, the inter-class spacing rules identifying a particular stretching range for each pair of characters.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention features systems, methods, and computer program products for typesetting a sequence of character glyphs. In on implementation, the invention provides a spacing classification file for a character set, the classification file being a text file, containing text form definitions of multiple character classes, each character class definition being structured to define a character class as having one or more arbitrary characters, the classification file further containing, in text form, multiple inter-class spacing definitions, each inter-class spacing definition defining, for an order pair of character classes, one or more spacing parameters for the ordered pair and an associated priority for each defined spacing parameter. A line of text can be compressed or expanded according to the inter-class spacing definitions for each sequential pairs of characters in the sequence of characters defined in the classification file according to their respective priorities.
68 Citations
42 Claims
-
1. A computer program product, tangibly embodied on a machine-readable storage device, comprising instructions operable to cause data processing apparatus to:
-
receive a spacing classification file specifying a classification for a Latin-based character set, the classification file being a text file containing in text form multiple character class definitions each defining a character class, each character class definition defining a character class as having one or more arbitrary Latin-based characters, the classification file further containing multiple inter-class spacing rules, in text form, each associated with an ordered pair of character classes, each inter-class spacing rule defining one or more spacing parameters for the ordered pair of character classes; lay out a line of text comprising a sequence of Latin-based character glyphs derived from a sequence of characters using the inter-class spacing rules, the sequence of characters including one or more characters belonging to different character classes; if the line of text needs to be compressed to a target line width, compress the line of text according to the inter-class spacing rules for each of two or more pairs of sequential characters in the sequence of characters, the inter-class spacing rules being defined in the spacing classification file, the inter-class spacing rules identifying a particular compression range for each pair of characters; and if the line of text needs to be stretched to a target line width, decompress the line of text according to the inter-class spacing rules for each of two or more pairs of sequential characters in the sequence of characters, the inter-class spacing rules being defined in the spacing classification file, the inter-class spacing rules identifying a particular stretching range for each pair of characters. - View Dependent Claims (2, 3)
-
-
4. A computer program product, tangibly embodied on a machine-readable storage device, comprising instructions operable to cause data processing apparatus to:
-
receive a line of Latin character text for typesetting; receive user input defining a character classification and inter-class rules for character spacing and justification, the rules defining spacing parameters and justification parameters independent of font-specific glyph parameters, the rules further defining priorities for application of justification parameters in a justification process, the character classification defining classes including a many-to-one mapping of characters to classes, the rules defining spacing and justification parameters for ordered pairs of the class, each pair of characters in the line of text mapping to a pair of the classes, the user input being unconstrained by the program as to the number of two or more classes or the mapping of characters to classes, and where the justification parameters identify a particular compression or expansion range for each character class pair; and lay out the line of text in accordance with the character classification and rules. - View Dependent Claims (5, 6, 7, 8)
-
-
9. A computer program product, tangibly embodied on a machine-readable storage device, comprising instructions operable to cause data processing apparatus to:
-
space a line of text comprising a sequence of characters;
thenjustify the line of text by stretching or compressing, comprising instructions to collect stretch justification values or compress justification values for each sequential pair of characters in the line by priority, with all justifications of the same priority combined as one value, and starting with the highest priority, finding fractions in the range 0.0 to 1.0 for each priority until the necessary delta to a width of the line is accumulated, and applying the found fractions to the justification values of the pairs of characters by priority. - View Dependent Claims (10, 11, 12)
-
-
13. A computer program product, tangibly embodied on a machine-readable storage device, comprising instructions operable to cause data processing apparatus to:
-
receive a definition of character-specific spacing rules for justification, the character-specific spacing rules including one or more character classes, the spacing rules including justification parameters identifying a range for compressing or stretching a particular pair of characters; and apply the character-specific spacing rules for justification so that characters are spaced according to their type design in a font, or characters are spaced according to the character-specific spacing rules, or characters are spaced according to their type design in a font without regard to character-specific spacing rules, or characters are spaced according to both their type design in a font and character-specific spacing rules. - View Dependent Claims (14)
-
-
15. A system comprising:
-
a user interface device; and one or more computers operable to interact with the user interface device and to perform operations including; receiving a spacing classification file specifying a classification for a Latin-based character set, the classification file being a text file containing in text form multiple character class definitions each defining a character class, each character class definition defining a character class as having one or more arbitrary Latin-based characters, the classification file further containing multiple inter-class spacing rules, in text form, each associated with an ordered pair of character classes, each inter-class spacing rule defining one or more spacing parameters for the ordered pair of character classes; laying out a line of text comprising a sequence of Latin-based character glyphs derived from a sequence of characters using the inter-class spacing rules, the sequence of characters including one or more characters belonging to different character classes; if the line of text needs to be compressed to a target line width, compressing the line of text according to the inter-class spacing rules for each of two or more pairs of sequential characters in the sequence of characters, the inter-class spacing rules being defined in the spacing classification file, the inter-class spacing rules identifying a particular compression range for each pair of characters; and if the line of text needs to be stretched to a target line width, decompressing the line of text according to the inter-class spacing rules for each of two or more pairs of sequential characters in the sequence of characters, the inter-class spacing rules being defined in the spacing classification file, the inter-class spacing rules identifying a particular stretching range for each pair of characters. - View Dependent Claims (16, 17)
-
-
18. A system comprising:
-
a user interface device; and one or more computers operable to interact with the user interface device and to perform operations including; receiving a line of Latin character text for typesetting; receiving user input defining a character classification and inter-class rules for character spacing and justification, the rules defining spacing parameters and justification parameters independent of font-specific glyph parameters, the rules further defining priorities for application of justification parameters in a justification process, the character classification defining classes including a many-to-one mapping of characters to classes, the rules defining spacing and justification parameters for ordered pairs of the class, each pair of characters in the line of text mapping to a pair of the classes, the user input being unconstrained by the program as to the number of two or more classes or the mapping of characters to classes, and where the justification parameters identify a particular compression or expansion range for each character class pair; and laying out the line of text in accordance with the character classification and rules. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A system comprising:
-
a user interface device; and one or more computers operable to interact with the user interface device and to perform operations including; spacing a line of text comprising a sequence of characters;
thenjustifying the line of text by stretching or compressing, comprising instructions to collect stretch justification values or compress justification values for each sequential pair of characters in the line by priority, with all justifications of the same priority combined as one value, and starting with the highest priority, finding fractions in the range 0.0 to 1.0 for each priority until the necessary delta to a width of the line is accumulated, and applying the found fractions to the justification values of the pairs of characters by priority. - View Dependent Claims (24, 25, 26)
-
-
27. A system comprising:
-
a user interface device; and one or more computers operable to interact with the user interface device and to perform operations including; receiving a definition of character-specific spacing rules for justification, the character specific spacing rules including one or more character classes, the spacing rules including justification parameters identifying a range for compressing or stretching a particular pair of characters; and applying the character-specific spacing rules for justification so that characters are spaced according to their type design in a font, or characters are spaced according to the character-specific spacing rules, or characters are spaced according to their type design in a font without regard to character-specific spacing rules, or characters are spaced according to both their type design in a font and character-specific spacing rules. - View Dependent Claims (28)
-
-
29. A method comprising:
-
receiving a spacing classification file specifying a classification for a Latin-based character set, the classification file being a text file containing in text form multiple character class definitions each defining a character class, each character class definition defining a character class as having one or more arbitrary Latin-based characters, the classification file further containing multiple inter-class spacing rules, in text form, each associated with an ordered pair of character classes, each inter-class spacing rule defining one or more spacing parameters for the ordered pair of character classes; laying out a line of text comprising a sequence of Latin-based character glyphs derived from a sequence of characters using the inter-class spacing rules, the sequence of characters including one or more characters belonging to different character classes; if the line of text needs to be compressed to a target line width, compressing the line of text according to the inter-class spacing rules for each of two or more pairs of sequential characters in the sequence of characters, the inter-class spacing rules being defined in the spacing classification file, the inter-class spacing rules identifying a particular compression range for each pair of characters; and if the line of text needs to be stretched to a target line width, decompressing the line of text according to the inter-class spacing rules for each of two or more pairs of sequential characters in the sequence of characters, the inter-class spacing rules being defined in the spacing classification file, the inter-class spacing rules identifying a particular stretching range for each pair of characters. - View Dependent Claims (30, 31)
-
-
32. A method comprising:
-
receiving a line of Latin character text for typesetting; receiving user input defining a character classification and inter-class rules for character spacing and justification, the rules defining spacing parameters and justification parameters independent of font-specific glyph parameters, the rules further defining priorities for application of justification parameters in a justification process, the character classification defining classes including a many-to-one mapping of characters to classes, the rules defining spacing and justification parameters for ordered pairs of the class, each pair of characters in the line of text mapping to a pair of the classes, the user input being unconstrained by the program as to the number of two or more classes or the mapping of characters to classes, and where the justification parameters identify a particular compression or expansion range for each character class pair; and laying out the line of text in accordance with the character classification and rules. - View Dependent Claims (33, 34, 35, 36)
-
-
37. A method comprising:
-
spacing a line of text comprising a sequence of characters;
thenjustifying the line of text by stretching or compressing, comprising instructions to collect stretch justification values or compress justification values for each sequential pair of characters in the line by priority, with all justifications of the same priority combined as one value, and starting with the highest priority, finding fractions in the range 0.0 to 1.0 for each priority until the necessary delta to a width of the line is accumulated, and applying the found fractions to the justification values of the pairs of characters by priority. - View Dependent Claims (38, 39, 40)
-
-
41. A method comprising:
-
receiving a definition of character-specific spacing rules for justification, the character specific spacing rules including one or more character classes, the spacing rules including justification parameters identifying a range for compressing or stretching a particular pair of characters; and applying the character-specific spacing rules for justification so that characters are spaced according to their type design in a font, or characters are spaced according to the character-specific spacing rules, or characters are spaced according to their type design in a font without regard to character-specific spacing rules, or characters are spaced according to both their type design in a font and character-specific spacing rules. - View Dependent Claims (42)
-
Specification