TBD
The use of open networks for the interchange of documents in both office and publishing environments has shown the need for a mechanism enabling the interchange of font information.
It is forseen that publishing and office technologies will merge and that this development will be facilitated by definition of a standard font resource architecture and a limited number of standard font resource interchange formats,
The first edition of ISO/IEC 9541-1 was published on 1991-09-15. After the publication, the following amendmentds and corrigenda were published.
This second edition of ISO/IEC 9541-1 includes all the amendmentds and corrigenda, and other requirements provided in the discussions in ISO/IEC JTC1/SC34.
ISO/IEC 9541 defines a method of naming glyphs and glyph collections, independent of ant document encoding technique; it assumes that one or more methods of associating document encoding techniques with glyph identifies used in font resources will be provided by text processing systems.
This part of ISO/IEC 9541 specifies the architecture of a font resource, i.e., the font description, font metrics, plyph description and glyph metrics properties required for font references and the interchange of font resources.
The following standards contain provisions which, through reference in this text, constitute provisions of this part of ISO/IEC 9541. At the time of publication, the editions indicated were valid. All standards are subject to revision, and parties to agreements based on this part of ISO/IEC 9541 are encouraged to investigate the possibility of applying the most recent editions of the standrds indicated below. Members of IEC and ISO maintain registers of currently valid International Standards.
ISO 646:1983, Information processing, — ISO 7-bit coded character set for information interchange.
ISO 3166:1988, Codes for the representation of names of countries.
ISO 6523:1984, Data interchange — Structures for the identification of organizations.
ISO/IEC 19757-2:2008, Information technology — Document Schema Definition Language (DSDL) — Part 2: Regular-grammar-based validation — RELAX NG.
ISO/IEC 9070:1991, Information technology — SGML support facilities — Registration procedures for public text owner identifiers.
ISO/IEC 9541-2:1991, Information technoogy — Font information interchange — Part 2: Interchange Format.
ISO/IEC 10036:19xx, Information technology — Procedure for registration of glyph and glyph collection identifiers.
For the purpose of this part of ISO/IEC 9541, the following definitions apply.
Imaginary line to which most glyph images of a font seem to align.
A point on the presentation surface at which the next glyph representation is to be imaged.
Absolute size at which a font is designed to be used.
Movement of the current position on the presentation surface after a glyph representation is imaged.
A glyph metric; a point in the glyph coordinate system, to which the current position on the presentation surface is usually translated, after the glyph representation is imaged.
A collection of glyph images having the same basic design, e.g., Courier Bald Oblique.
A collection of fonts of common design, e.g., Courier, Courier Bold, Courier Bold Oblique.
The set of dimensions and positioning information in a font resource common to all glyph representations contained in that font resource.
The information about a font resource in an electronic document representation, and possible procedures and operations on that information, which identify or describe the desired font.
A collection of glyph representation together with descriptive and font metric information which are relevant to the collection of glyph representations as a whole.
A scalar reference size relative to which most font metrics, glyph shapes and glyph metrics are specified.
A recognizable abstract graphic symbol which is independent of any specific design.
An identified set of glyphs.
A two-dimensional Cartesian coordinate system within which glyph shapes, glyph metrics, and font metrics are defined.
An image of a glyph, as obtained from a glyph representation displayed on a presentation surface.
The The set of information in a glyph representation used for defining the dimensions and positioning of the glyph shape.
The glyph shape and glyph metrics associated with a specific glyph in a font resource.
The set of information in a glyph representation used for defining the shape which represents the glyph.
The extension of a glyph shape beyond its position point or escapement point.
A glyph metric; a point in the glyph coordinate system, usually translated to the current position on the presentation surface before the glyph shape is imaged.
The extent to which the shape of a glyph or set of glyphs appear to incline, including any consequent design or form change.
A virtual representation of a presentation medium (page, graphics display, etc.), maintained by the presentation process, on which all glyph shapes are to be imaged.
The ratio of a glyph's or set of glyphs' escapement to font hight.
The major stroke of a glyph shape.
The ratio of a glyph's or set of glyphs" stem width to font height.
An identified mode for setting of text in a writing system, usually corresponding to a nominal escapement direction of the glyphs in that mode, i.e., left-to-right, right-to-left or top-to-bottom.
The font size, measured along the y axis of the glyph coordinate system.
A reference size with two components, measured respectively along the x and y axes of the glyph coordinate system.
Dimensional expression that specifies the are inside which a set of glyph images can be designed.
Dimensional expression to specify an actual area that a glyph image occupies within a design frame.
The ratio of the blackened area of a glyph image to the extended body size area of the glyph image.
Object between lines or objects inserted between lines.
Object between characters in the writing direction, which is the direction specified by WRMODENAME.
Object with which an interlinear or intercharacter object is associated. This term is used when referring to the relationship between an interlinear/intercharacter object and the object with which the interlinear/intercharacter object is associated.
Interlinear or intercharacter object. This term is used when referring to the relationship between an interlinear/intercharactert object and the object with which the interlinear/intercharacter object is associated.
classification of typefaces for font referencing
application field (text, handwritten, decorative, symbol) of font for font referencing
shape (cove, normal sans, rounded, no classification) of serif for font referencing
An extended version of Backus-Naur Form (BNF) notation is used to formally define the data types used throughout this part of ISO/IEC 9541 in a manner independent of the actual abstract data syntax used in the font interchange formats. By convention, basic data types are shown in uppercase.
The components of the extended BNF are:
aaa | rule syntactic element | |
::= | rule definition | |
| | element choice (or) | |
, | element separator | |
{ ... } | optional element(s) | |
( ... ) | group of elements | |
( ... )* | 0 to n repeat of element(s) in group | |
( ... )+ | 1 to n repeat of element(s) in group | |
" ... " | literal element | |
-... | comment |
EXAMPLES
a) a ::= b, c: Element a is defined as/composed of the sequence of element b followed by element c (ordered list);
b) a ::= b | c: Element a is defined as either of the elements b or c;
c) a ::= (b | c), [d]: Element a is defined as the sequence of containing either of the elements b or c, optionally followed by the element d;
d) a ::= (b | c)*: Element a is defined as a sequence of 0 or more instances of either of the elements b or c;
e) a ::= (b, c, "foo")+: Element a is defined as a sequence of 1 or more instances of the sequence of the elements b, c and the literal "foo".
The formal data type definitions given in clause 8 identify the set of information that must be represented by all font information interchange formats that conform to this part of ISO/IEC 9541. There is no requirement that an interchange format follow the exact organization of data or structures represented in clause 8, as long as the general architectural principles of extensibility, backward and forward compatibility are not compromised. Each conforming interchange format is free to adopt the most efficient encoding mechanism available in its abstract syntax.
In particular, the actual names of properties and property-lists defined in ISO/IEC 9541 do not have to be encoded directly as data in an interchange format as long as the association between the names and values is maintained.
The fully qualified name of a property or property-list is given by the BNF definition of the structured property name for each property defined in clause 8. It is up to the parsing processes to expand the encoding-specific names into these fully qualified names for use by encoding-independent interfaces.
An elemental data type defines the basic unit of information represented in a font resource for which there is no further part 1 subdivision. A complex data type is a grouping of elemental data types which are used as basic building blocks.
This clause defines the elemental and complex data types used throughout this part of ISO/IEC 9541. The formal syntax and method of encoding these data types are defined in the font information interchange format specified in ISO/IEC 9541-2.
The principal data type used to represent font resource information is a property. Conceptually, a property is defined to be a name type value tuple, where: name is the unambiguous property name; type is the data type of the property value; and value is the value of the property, the meaning and interpretation of which is specified by the property name and the context in which the property is used.
The font resource properties specified in clause 8 of ISO/IEC 9541 include precise definitions of data type. As a result, the property name is also a specification of the data type and meaning of the corresponding property value. The data type of non-ISO properties, however, shall be explicitly defined using the elemental and complex data types defined in this clause.
For example, a property for identifying the font family name used in a font resource might have a property name FONTFAMILY, whose value is defined to be of data type name, where a particular property value instance might be Courier.
Properties may be grouped together according to the class of object they are associated with into property-lists. A property-list is a set of zero or more properties of an object, all with property names of the same class. Often a class of property names is created specifically for the purpose of naming the objects in a particular type of property-list. For example, the property names WEIGHT and POSTURE might belong to the class of font resource property names created specifically to name descriptive font resource properties.
The value of a property may be itself a property-list (i.e., the data type is property-list) so that one property-list is effectively nested inside another. In general, this nesting may be repeated indefinitely, so as to permit creation of arbitrarily complex hierarchical data structures. In practice, however, the depth of nesting is usually restricted according to the context in which a particular property is defined.
Property-lists, ordered or unordered as appropriate, allow for the definition and general extensibility of both ISO and non-ISO font resource data. A non-ISO property is any font resource property not defined by ISO/IEC 9541.
Each property has an associated value. A value may be terminal, i.e., it represents a simple data type such as integer, it may be a list of values of such simple data types (a value-list), or it may be itself a property-list.
As opposed to property-lists, value-lists are used wherever the content of a property can be prescribed; ordered value-lists are used whenever the exact order of the property values can be prescribed.
The data types of each property value defined in a conforming font resource shall be specified to be one of the following:
A name type value tuple data structure;
A list of zero or more related properties, possibly the value of some other higher-level property, which may be specified to be ordered in a particular sequence;
A list of zero or more property type value pairs, each usually of the same data type, which may be specified to be ordered in a particular sequence;
A data structure containing binary information that is not representable by data types defined in this part of ISO/IEC 9541. Such information is usually proprietary in nature, and is often protected by legal contract. It may be exchanged but will not be necessarily understood by all users of the font resource. Proprietary data contains:
An ordered sequence of graphic character and possible character set control codes, of an identified character string universal class, as specified by ISO 8824, such string intended for matching;
An ordered sequence of graphic character and possible character set control codes, of an identified character string universal class, as specified by ISO 8824, which constitute a human understandable message suitable for presentation to a user;
An ordered sequence of octets;
An 8-bit byte;
A signed integer number within the range -231 to 231 - 1 inclusive;
An unsigned integer number within the range 0 to 232 - 1 inclusive;
A cardinal within the range 0 to 28 - 1 inclusive;
A signed rational number expressed as the ratio of two integers, i.e., a numerator/denominator. The denominator is within the range 1 to 231 - 1 inclusive;
A rational number expressed relative to the glyph coordinate system unit divisor;
A rational number in degrees, within the range 0 inclusive to ±360 exclusive, rotated counter-clockwise around the origin of the the glyph coordinate system, as measured from the positive x axis;
A structured-name, see 5.4;
A boolean value, one of TRUE or FALSE.
The main vehicle for naming used in ISO/IEC 9541 is a structured-name, as defined in ISO/IEC 9541-2, Annex B. A structured-name is an unambiguous identifier for some object suitable for representing that object within a decentralized, distributed computer system, invariant over space and time.
The remainder of this clause defines the application of ISO/IEC 9541-2, Annex B, to structured-names as used in ISO/IEC 9541. For notational convenience in ISO/IEC 9541, a structured-name is notated in the canonical form defined in ISO/IEC 9070:1991.
ISO/IEC 9541 names are those structured-names with naming authority in the canonical form of "ISO/IEC 9541-1". All ISO/IEC 9541 names are reserved for definition by this part of ISO/IEC 9541. Examples include the font resource properties defined in clause 8 of this part. Portions of the structured-name may be omitted from ISO/IEC 9541 names where context establishes the fully qualified name, thereby leaving only the property name to be interchanged.
NOTE 1 The ASN.1 form of this naming authority is {1 0 9541 1}.
ISO/IEC 10036 names are those structured-names with naming authority in canonical form "ISO/IEC 10036/RA". All ISO/IEC 10036 names are reserved for definition by registries specifically authorized by ISO/IEC 10036. Examples include the glyph names and registry thereof defined in clause 6 of this part of ISO/IEC 9541. Portions of the structured-name may be omitted from structured ISO/IEC 10036 names where context establishes the fully qualified name, thereby leaving only the glyph or glyph collection name(s) to be interchanged.
NOTE 2 The ASN.1 form of this naming authority is {1 1 10036}.
The textual content of ISO/IEC 9541 names and ISO/IEC 10036 names contained in conforming font resources shall be encoded according to the ISO 646 IRV coded character set.
NOTES 3 The character repertoire of ISO/IEC 9541 names and ISO/IEC 10036 names is defined in ISO/IEC 9541-2, Annex B.
NOTES 4 ISO/IEC 9541 names and ISO/IEC 10036 names are so reserved as to provide a set of structured-names which are most widely recognized and supported, while still allowing a distributed naming capability to those who wish to use it. Particular classes of font-related objects and names are defined in the appropriate clauses of this part of ISO/IEC 9541 and in accordance with ISO registration procedures.
NOTES 5 While structured property names, structured glyph collection names and structured glyph names other than those registered as ISO/IEC 9541 or ISO/IEC 10036 names, respectively, are generally supported by the architecture defined here, their meaning is not defined by ISO/IEC 9541.
ICD0010 names are those structured-names created by organizations registered with naming authority "ICD0010", whose organizational codes shall consist solely of numbers. All ICD0010 names are reserved for definition by registries specifically authorized by a type industry professional organization naming authority operating under ISO 6523 and having ICD value 0010 in its SIO.
NOTE 6 The ASN.1 form of this naming authority is {1 3 10}.
It is recommended, although not required, that the ICD0010 naming authority be used to register organizations wishing to create registries of font resource information for the purposes of font information interchange. For example, for organization XYZ to create the font resource name "ICDOO10/1234//FontNames::Garamond-Bold-ltalic-Condensed", the object name naming authority 1234 must be issued by naming authority ICD0010 to organization XYZ.
The formal definition for ISO/IEC 9541 data types is given by the following BNF notation:
property ::= property-name, [property-type,] property-value property-name ::= STRUCTURED-NAME property-type ::= -- coded ISO/IEC 9541 data type identifier, one of: property-list, ordered-property-list, value-list, ordered-value-list, BOOLEAN, STRUCTURED-NAME, MATCH-STRING, MESSAGE, OCTET-STRING, OCTET, INTEGER, CARDINAL, CODE, RATIONAL, REL-RATIONAL, ANGLE, PROPRIETARY-DATA property-value ::= value | complex-value complex-value ::= value-list | ordered-value-list | property-list | ordered-property-list value-list ::= (value)* -- unordered ordered-value-list ::= (value)* -- ordered property-list ::= (property)* -- unordered ordered-property-list ::= (property)* -- ordered value ::= BOOLEAN | STRUCTURED-NAME | MATCH-STR¨HNG | MESSAGE | OCTET-STRING | OCTET | INTEGER | CARDINAL | CODE | RATIONAL | REL-RAT¨HONAL | ANGLE | PROPRIETARY-DATA BOOLEAN ::= -- a boolean value, one of TRUE or FALSE STRUCTURED-NAME ::= -- see 5.4 MATCH-STRING ::= -- An ordered sequence of graphic character and possible character set control codes, of an identified character string universal class, as specified by ISO 8824, intended for matching MESSAGE ::= -- An ordered sequence of graphic character and possible character set control codes, of an identified character string universal class, as specified by ISO 8824, intended for presentation to a user OCTET-STRING ::= (OCTET)* OCTET ::= -- 8-bit byte INTEGER ::= -- a signed integer number, -231 to 231 -1 inclusive CARDINAL ::= -- an unsigned integer number, 0 to 232 -1 inclusive CODE ::= -- a coded, unsigned integer number, 0 to 28 -1 inclusive RATIONAL ::= numerator, [denominator] -- denominator defaults to 1 REL-RATIONAL ::= numerator, [denominator] -- denominator defaults to value of glyph coordinate system unit divisor or 1 if that divisor is not defined ANGLE ::= numerator, [denominator] -- an angle, in degrees, 0 to ±360 exclusive, rotated counter-clockwise around from the positive x axis PROPRIETARY-DATA ::= [proprietary-data-message,] [proprietary-data-key,] proprietary-data-blackbox numerator ::= -- a signed interger number, -231 to 231 1 inclusive denominator ::= -- a signed integer number, 1 to 231 -1 inclusive proprietary-data-message ::= MESSAGE proprietary-data-key ::= OCTET-STRING proprietary-data-blackbox ::= OCTET-STRING
Glyphs are distinguished by their design-independent shape and their description (e.g., "||" - double bracket, open, piece extender; "||" - center box bar, double vertical). In the general case, glyphs are identified by a structured glyph name, according to the definition of structured-names in clause 5. For example, "ICD0010/1234//A" or "ICD0010/1234//789" might be a name for the capital Latin "A" glyph, at the discretion of naming authority XYZ.
This method of naming is not intended to establish any particular encoding for strings of glyph names, particularly not an encoding where the complete structured glyph name including the registered naming authority object identifier must be encoded for every glyph.
When referencing glyphs with intersecting descriptions, users are generally advised to use the the most specific appropriate glyph available in order to maintain unique glyph identification. For example, use hyphen rather than hyphen-minus if hyphen is intended.
ISO/IEC 10036 glyphs are those glyphs named by structured-names for which the owner name identifies the registration authority authorized by ISO/IEC 10036. ISO/IEC 10036 glyph identification has the objective of generating a unique, unambiguous glyph identifier for each glyph defined and used in the world. These glyph identifiers are to be distinct for each combination of glyph shape and description, but will not be different for each design variation. This establishes a structure and registry for identification of ISO/IEC 10036 glyphs.
ISO/IEC 10036 glyphs are identified by structured-names for which the equivalent canonical character string form is "ISO/IEC 10036/RA//Glyphs::nnnn" ; where "nnn"is a sequence of decimal digits beginning with a non-zero digit, which represents an integer in the range of 1 to 232 - 1.
For the purposes of ISO/IEC 9541 and according to the rules for the designation and operation of registration authorities in the ISO/IEC JTC1 Directives, the ISO and IEC Councils shall designate an organization to act as the ISO/IEC 10036 glyph registration authority. The name and address of the registration authority and the registration procedures are to be found in ISO/IEC 10036.
A glyph collection is an identified set of glyphs, defined by enumeration of the structured-names of the glyphs in the collection. In the general case, glyph collections are identified by a structured glyph collection name, according to the definition of structured-names in 5.4. For example, "ICD001O/1234//WesternEuropean" or "ICDOO10/1234//6789" might be a name for the Western European glyph collection, at the discretion of naming authority XYZ.
Some or all of the glyphs of a collection might or might not be ISO/IEC 10036 glyphs. However, wherever practical, users are advised to use ISO/IEC 10036 glyphs in defining collections. Further, the structured glyph collection name might or might not be an ISO-registered name. However, wherever practical, users are advised to use ISO/IEC 10036 glyph collections, and composite collections based on ISO/IEC 10036 glyph collections and ISO/IEC 10036 glyphs.
ISO/IEC 10036 glyph collections are those glyph collections named by structured-names for which the owner name identifies the registration authority authorized by ISO/IEC 10036. ISO/IEC 10036 glyph collections shall consist solely of ISO/IEC 10036 glyphs. Definition of ISO/IEC 10036 glyph collections has the objective of establishing a relatively few widely recognized collections which serve as the basis for efficient generation and use of fonts. The remainder of this clause establishes a structure and registry for identification of ISO/IEC 10036 glyph collections.
ISO/IEC 10036 glyph collections are identified by structured-names for which the equivalent canonical character string form is "ISO/IEC 10036/RA//Collections::nnnn"; where "nnnn" is a squence of decimal digits, beginning with a non-zero digit, which represents an integer in the range 1 to 232 - 1.
For the purposes of ISO/IEC 9541 and according to the rules for the designation and operation of registration authorities in the ISO/IEC JTC1 Directives, the ISO and IEC Councils shall designate an organization to act as the ISO/IEC 10036 glyph collection registration authority. The name and address of the registration authority and the registration procedures are to be found in ISO/IEC 10036.
A font resource is composed of an arbitrary number of ISO and non-ISO font properties and is unambiguously identified by its device-independent font resource name. The properties of a font resource are defined by a property-list whose property names are structured font resource property names. For example, CAPHEIGHT might be a font resource property name whose corresponding value is a distance in the glyph coordinate system.
The font resource data structure groups writing-mode-dependent properties into sets of values on a per-writing-mode basis, referred to as modal properties. Most glyph and font metrics are specified as modal properties. A font resource may also contain a set of descriptive properties, referred to as description properties, that describe the glyph representations of the resource globally, independent of a particular writing mode. Glyph shape-specific information is grouped into a set of shape properties, referred to as glyph shape representation properties (see ISO/I EC 9541-3).
The structure of a font resource is as follows (where indentation denotes structure nesting):
Font resource name property Description property-list Modal property-list Writing mode property-list(s) Glyph metrics property-list(s) Glyph shape representations property-list(s)
While a particular instance of a font resource may contain all the property-lists described above, it is not required to do so. Font suppliers, processing systems or applications may require that a font resource be partitioned into subsets for practical or contractual reasons. For the purposes of ISO/IEC 9541, however, a font resource is viewed conceptually as containing all the property-lists described above.
ISO/IEC 9541 font resource properties are those font resource properties with structured font resource property names having naming authority "ISO/IEC 9541-1".
Within a font resource, a font resource definer should generally supply as many font resource properties as is practical, so that users can make fullest use of the resource.
The remainder of this clause defines the font resource description and modal properties, giving the type and meaning of the corresponding property values. Unless otherwise specified, all dimensions and locations are given in the glyph coordinate system independent of imaging device or shape representation technology.
NOTE 7 It is possible, although not advised, for an otherwise valid font resource to contain font resource property values which are inconsistent with other font resource property values. For example, it is possible for a font resource to contain a POSTURE property with a value of italic even though some or all of the glyphs in the font resource are in fact not of italic design.
The font resource name propety specifies an unambiguous identifier to refer to all information contained in a particular font resource.
The font resource name propertyis specified in 8.5.
The description property-list contains those font resource properties that characterize the font resource as a whole, independent of writing mode, including such properties as font family, weight, posture, glyph complement, etc.
The description property-list is specified in 8.6, and is of general interest to font selection, substitution and document composition rocesses.
The font resource architecture described here supports multiple writing modes, but has only one set of values for description properties and glyph shapes. Much of the font metric information is dependent upon writing mode. Therefore the structure of a font resource distinguishes which properties are writing-mode-dependent from those that are not, and provides for the identification of which property values are associated with which writing mode.
Font resource description and modal property-lists taken together are commonly referred to as the metrics of a font resource, and are of general interest to document composition processes. The modal properties are also used by presentation processes to position the glyph shape representations on the presentation surface.
The writing mode properties describe the limits and measures for the font resource according to a given writing mode.
The writing mode properties are specified in 8.7.
The glyph metrics property-list contains the glyph description and metrics information that give the extents, escapement and other measures for individual glyphs on a per-writing-mode basis.
The glyph metrics property-list is specified in 8.8.
The glyph shape representation property-list contains the set of glyph shape representation and technology-specific information of the font resource, independent of writing mode.
The glyph shape representation property-list is specified in ISO/IEC 9541-3 and is of general interest to presentation processes.
The formal data type definition of a font resource in BNF notation is given below:
fontresource ::= [fontname-property,] [fontdescription-property-list,] [wrrnodes-property-list,] [shapes-property-list,] [property-list]
It is recommended, although not required, that non-ISO properties and property-lists be nested in one of the property-lists defined in ISO/IEC 9541 wherever possible.
Throughout the remainder of c1ause 8, the formal data type definition in BNF notation is given with each property and property-list defined in the clause.
Glyph shapes and metrics are defined with respect to a single two-dimensional Cartesian coordinate system, called the glyph coordinate system, with positive x axis pointing to the right and positive yaxis pointing up. AII directions, e.g., horizontal or vertical, are given here with respect to the glyph coordinate system, not the presentation surface or document coordinate system. Technology-specific shape descriptions may be defined with respect to a technology-specific shape coordinate system; such descriptions refer to the glyph coordinate system by appropriate specification of the relationship between the technology-specific shape coordinate system and the reference glyph coordinate system.
Font resource definers are strongly encouraged to follow the convention that, in the glyph coordinate system, glyphs are upright, i.e., what is usually the top of the glyph is oriented in the positive y direction.
Within the glyph coordinate system, dimensions are specified as a ratio to the body size of the glyph. Body size is a scalar reference size, often expressed as an integral number of unit sub-divisions equivalent to the x, y grid employed to digitize the font resource, relative to which most metric information of that font resource and its glyph shapes are specified. The glyph coordinate system, therefore, may be continuous or discrete, as indicated by the relative rational units divisor property, which specifies the number of relative rational units equal to the body size (see the RELUNITS) property, 8.6.7.
Distances are specified as unsigned ratios to the body size. Locations are specified as signed x and y coordinates, each coordinate a ratio to the body size, generally specified relative to the origin of the glyph coordinate system. See figure 1.
NOTE 8 The sizes of typographic fonts are traditionally specified in terms of body size, by height measured in printing points or millimeters, so that dimensions may naturally be specified relative to their body size. For fonts whose sizes are not normally specified in terms of body size, e.g., office fonts whose size is usually given in terms of horizontal pitch, the font resource definer must assign some reasonable body size relative to which dimensions may then be specified in the glyph coordinate system; for example, the font Courier 10 pitch, being usually printed 6 lines to the inch, might be assigned a body size equivalent to 1/6 inch for this purpose.
Figure 1 - Glyph coordinate system showing a typical Latin glyph in the LEFT-TO-RIGHGT writing mode
A fundamental aspect of the the font model described in ISO/IEC 9541 is the ability to apply linear geometric transformations to metric and shape representation information contained in a font resource.
Positions and distances in the glyph coordinate system (e.g., glyph position and escapement points, average escapement, etc.) scale uniformly in proportion to the body size of the font resource. For example, a distance that is defined as one-half the body size will be 5 mm at a font size of 10 mm and 50 mm at a font size of 100 mm. All scaling is performed with respect to the origin of the glyph coordinate system.
Anamorphic scaling, i.e., non-uniform scale factors in x and y, may be applied to a font resource according to the limits imposed by the minimum and maximum anamorphic scale factor modal properties (see MINANASCALE and MAXANASCALE, 8.7.1.15). In this case, the x and y components of positions and distances are scaled by their independent x, y scale factors, respectively. Let Sx,y be the x and y components of the scale factor, Px,y and Dx,y be the x and y components of a point and a distance in the glyph coordinate system, respectively; then the scaled point and distance can be represented by:
P'x,y = Sx,y × Px,y D'x,y = Sx,y × Dx,y
Where warranted, multiple font resource masters of a font design may be defined by a font supplier in order to more faithfully reproduce the size-dependent shape and possible metric variations inherent in certain typeface designs, through the appropriate application of the minimum, design and maximum font size description properties (see DSNSIZE, MINSIZE and MAXSIZE, 8.6.17). Each such font resource continues to follow the linear scaling model presented here over the continuous range of body sizes defined from MINSIZE, inclusive, to MAXSIZE, inclusive.
In general, non-linear scaling artifacts will be introduced from one font resource master to another. Creators of such font resources are strongly encouraged to incorporate some indication of the intended usage of a master in its font resource name, e.g., Notes, Book, Display, etc., to maintain an unambiguous font resource name space (see FONTNAME property, 8.5). Composition processes using such font resources are advised to treat each master as a logically distinct font resource, which although of the same font family, has independent metric and shape representation information.
As font resource interchange and processing evolves, new features will require new representations in ISO/IRC 9541. As ISO/IEC 9541 will be supported by current and future versions of multiple standards and products developed in conformance with those standards, the font resource architecture defined here is designed to support the reasonable extension of both ISO and non-ISO font resource information. Such extensions shall be made as amendments according to established ISO procedures.
Extensions to ISO/IEC 9541 shall be made in a way that is both forward and backward compatible with the current version of ISO/IEC 9541. An extension is backward compatible if and only if it can be shown that robust implementations conforming to an older version of ISO/I EC 9541 may process without modification font resources that conform to newer versions of ISO/IEC 9541. An extension is forward compatible if and only if it can be shown that any future robust implementation conforming to some future version of ISO/IEC 9541 will be able to process without modification font resources that conform to the existing version of ISO/IEC 9541.
In order to assure backward compatibility, future amendments to ISO/IEC 9541 shall be restricted to the addition of new or partially redundant properties rather than the semantic modification of existing properties. In such cases, the standard version information description property value shall be updated to reflect the amendment (see the standard version information property (STANDARDVERSION), 8.6.2). Forward compatibility is assured by the property-list architecture described herein.
Consumers of font resources are advised to ignore non-ISO properties whose property name or data type is unknown or not locally supported, but are strongly encouraged to make such unaltered data available to third parties during general font resource interchange.
FONTNAME is a structured-name, the device-independent name of the font resource, as assigned by the data source (DATASOURCE).
fontname-property ::= fontname-name, fontname-value fontname-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//FONTNAME fontname-value ::= STRUCTURED-NAME
NOTE 9 The FONTNAME property provides an unambiguous method for identifying a given font resource across space and time, within a potentially large decentralized database of the world's font resources.
FONTDESCRIPTION is a property-list. specifying all the properties that globally describethe font resource, independent of a particular writing mode or how the glyph shapes may be represented.
fontdescription-property-list ::= fontdescription-name, fontdescription-value-property-list fontdescription-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//FONTDESCRIPT¨HON fontdescription-value-property-list ::= (dataversion-property | standardversion-property | datasource-property | datacopyright-property | dsnsource-property | dsncopyright-property | relunits-property | typeface-property | fontfamily-property | posture-property | postureangle-property | weight-property | propwidth-property | structure-property | dsngroup-property | glyphcomp-property-list | dsnsize-property | minsize-property | maxsize-property | capheight-property | lcheight-property | minfeatsz-property | nomcapstemwidth-property | nomlcstemwidth-property | nomwrmode-property | property-list)*
The remainder of this clause defines the ISO/IEC 9541 font resource description properties. The order of the description properties as shown here is for convenience only; no order is assumed.
DATAVERSION is an ordered-value-list of three values giving the version information for the font resource data. It is composed of two cardinals: the major and minor version number of the data, respectively, and an ISO 8824 Universal Time String, the timestamp of the last update to the data.
dataversion-property ::= dataversion-name, dataversion-value-value-list dataversion-name ::= STRUCTURED-NAME -- ISO/IEC 9541-11/DATAVERSION dataversion-value-value-list ::= dataversion-major, dataversion-minor, dataversion-timestamp dataversion-major ::= CARDINAL dataversion-minor ::= CARDINAL dataversion-timestamp ::= -- ISO 8824 Universal Time String
STANDARDVERSION is a cardinal giving the version information of ISO/IEC 9541 that the font resource structure conforms to, as assigned by ISO/IEC 9541-2. Typically, this value is defined to be the year that the standard or an amendment to the standard is published, e.g., 1991.
standardversion-property ::= standardversion-name, standardversion-value standardversion-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//STANDARDVERSION standardversion-value ::= CARDINAL
DATASOURCE is a structured-name, the name of the supplier of the font resource data, or if different, the name of the organization that last modified the information contained in the font resource.
datasource-property ::= datasource-name, datasource-value datasource-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DATASOURCE datasource-value ::= STRUCTURED-NAME
DATACOPYRIGHT is a message, the copyright information of the legal owner of the digital font data as represented in the font resource.
datacopyright-property ::= datacopyright-name, datacopyright-value datacopyright-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DATACOPYRIGHT datacopyright-value ::= MESSAGE
NOTE 10 Data copyright information may be a required component of a font resource by law or contract, independent of the particular encoding or possible storage format used to represent that information.
DSNSOURCE is a structured-name, the organizational name of the typeface design source.
dsnsource-property ::= dsnsource-name, dsnsource-value dsnsource-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DSNSOURCE dsnsource-value ::= STRUCTURED-NAME
DSNCOPYRIGHT is a message, the copyright information of the legal owner of the typeface design as represented in the font resource.
dsncopyright-property ::= dsncopyright-name, dsncopyright-value dsncopyright-name ::= STRUCTURED-NAME -- ISO/IECC 9541-1//DSNCOPYRIGHT dsncopyright-value ::= MESSAGE
NOTE 11 Typeface design and trademark protection laws vary from country to country. As with the data copyright (DATACOPYRIGHT), design copyright information may be a required component of a font resource by law or contract, independent of the particular encoding or possible storage format used to represent that information.
RELUNITS is a cardinal, the number of relative units equal to the body size of the font resource, as measured along the yaxis of the glyph coordinate system.
relunits-property ::= relunits-name, relunits-value relunits-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//RELUNITS relunits-value ::= CARDINAL
NOTE 12 If supplied in a font resource, the RELUNITS property gives the number of discrete glyph coordinate system units equal to the body size, which constitutes the denominator of those properties of the font resource with data type relrational. If not supplied, this implies a continuous unit coordinate space where all measurements are expressed as rational numbers; in this case most properties that use the rel-rational data type will supply both a numerator and denominator.
TYPEFACE is a message, the full name of the typeface design of the font resource.
typeface-property ::= typeface-name, typeface-value typeface-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//TYPEFACE typeface-value ::= MESSAGE
NOTE 13 The value for the TYPEFACE property is generally the industrial name of the typeface, as normally used in the type industry, and usualfy implies particular values for the fontfamily name, weight. posture, proportionate width, etc. This name may or may not be unambiguous, but should be suitable for presentation to a human user to identify the typeface used in the font resource.
FONTFAMILY is a match-string, the name of the font family of the font resource.
fontfamily-property ::= fontfamily-name, fontfamily-value fontfamily-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//FONTFAMILY fontfamily-value ::= MATCH-STRING
POSTURE is a code, indicating the coded posture of the typeface of the font resource; one of
0 => not applicable; 1 => upright (e.g., Roman); 2 => oblique; upright design slanted in the direction of the nominal escapement with no design or form change; 3 => back slanted oblique; upright design slanted in the direction opposite of the nominal escapement with no design or form change; 4 => italic; slanted in the direction of the nominal escapement with change in design or form; 5 => back slanted italic; italic design slanted in the direction opposite to the nominal escapement; 6 => other.
All other posture codes are reserved for future standardization.
posture-property ::= posture-name, posture-value posture-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//P0STURE posture-value ::= CODE
POSTUREANGLE is an angle, the nominal angle of the posture of the typeface design.
postureangle-property ::= postureangle-name, postureangle-value postureangle-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//POSTUREANGLE postureangle-value ::= ANGLE
NOTE 14 The value for the POSTUREANGLE property will normally be defined in the first and second quadrants of the glyph coordinate system, in the range 75 to 105°. For Latin fonts, the italic and oblique postures usually will be less than 90°.
WEIGHT is a code, indicating the coded weight of the typeface of the font resource relative to all font resources of the same font family (FONTFAMILY) and data source (DATASOURCE), according to the judgment ot the data source; one of
0 => not applicable 1 => ultra light (lowest ratio of glyph stem width to font height); 2 => extra light; 3 => light; 4 => semilight; 5 => medium; 6 => semi bold; 7 => bold; 8 => extra bold; 9 => ultra bold (highest ratio of glyph stem width to font height).
WEIGHT codes are ordered according to increasing weight. All other weight codes are reserved for future standardization.
weight-property ::= weight-name, weight-value weight-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//WEIGHT weight-value ::= CODE
NOTE 15 A font family-independent approximation of absolute weight adequate for matching operations across all font resources and all font suppliers can be derived using the nominal capital stem width (NOMCAPSTEMWIDTH) and capital height (CAPHEIGHT) properties:
AbsoluteWeight = NOMCAPSTEMWIDTH ICAPHEIGHT
PROPWIDTH is a code, indicating the coded proportionate width of the typeface of the font resource relative to all font resources of the same font family (FONTFAMILY) and data source (DATASOURCE), according to the judgment of the data source; one of
0 => not applicable; 1 => ultra condensed (lowest ratio of glyph width to font height); 2 => extra condensed; 3 => condensed; 4 => semi condensed; 5 => medium; 6 => semi expanded; 7 => expanded; 8 => extra expanded; 9 => ultra expanded (highest ratio of glyph width to font height).
PROPWIDTH codes are ordered according to increasing width. All other proportionate width codes are reserved for future standardization.
propwidth-property ::= propwidth-name, propwidth-value propwidth-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//PROPWIDTH propwidth-value ::= CODE
NOTE 16 A font family-independent approximation of absolute proportionate width adequate formatching operations across all font resources and all font suppliers can be derived using the average capital escapement (AVGCAPESCX or AVGCAPESCY) and capital height (CAPHEIGHT) properties:
AbsolutePropwidth = AVGCAPESC[X or Y]/CAPHEIGHT
STRUCTURE is a code, indicating the structure of the strokes of the glyph shapes of the font resource, one of
0 => undefinedor not applicable; 1 => solid, the shape containing no voids or patterns within the strokes; 2 => outline, the shape including only the outer edges of the strokes.
All other structure codes are reserved for future standardization.
structure-property ::= structure-name, structure-value structure-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//STRUCTURE structure-value ::= CODE
NOTE 17 Structure codes are not intended to supplant the design grouping provided by the design group property (DSNGROUP).
DSNGROUP is an ordered-value-list of three codes, indicating the design grouping of the typeface of the font resource, according to one or more levels of the grouping scheme defined in ISO/IEC 9541-1, Annex A, in order by level, beginning with the highest, most general level.
All other design group codes are reserved for future standardization.
dsngroup-property ::= dsngroup-name, dsngroup-value-value-list dsngroup-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DSNGROUP dsngroup-value-value-list ::= dsngroup-class, dsngroup-subclass, dsngroup-specific-group dsngroup-class ::= CODE dsngroup-subclass ::= CODE dsngroup-specific-group ::= CODE
NOTE 18 The WEIGHT, PROPWIDTH, POSTURE and STRUCTURE properties specify further typographic design variations on elements of the design group, e.g., Baskerville Roman, Baskerville Bold Italic, Baskerville Expanded Outline, etc.
GLYPHCOMP is an ordered-property-list, a list of properties that together define the union of distinct glyph identifiers contained in each writing mode of the font resource.
The properties include any or all of the properties defined in this clause, at most once each, and applied in the order here defined so as to construct a specification of the glyph complement.
glyphcomp-property-list ::= glyphcomp-name, glyphcomp-value-property-list glyphcomp-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GLYPHCOMP glyphcomp-value-property-list ::= [numglyphs-property, ] [incglyphcols-property, ] [excglyphcols-property, ] [incglyphs-property, ] [excglyphs-property, ] [property-list]
NOTE 19 Individual writing modes may contain glyph metrics for fewer glyphs than prescribed by the full glyph complement.
NUMGLYPHS is a cardinal, the number of distinct glyph identifiers in the glyph complement of the font resource.
numglyphs-property ::= numglyphs-name, numglyphs-value numglyphs-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//NUMGLYPHS numglyphs-value ::= CARDINAL
INCGLYPHCOLS is a value-list of structured glyph collection names, the glyphs in the collections thereby indicated to be included in the glyph complement, subject to modification by the presence of other glyph complement properties (see clause 7 for a description of glyph collections).
incglyphcols-property ::= incglyphcols-name, incglyphcols-value-value-list incglyphcols-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//INCGLYPHCOLS incglyphcols-value-value-list ::= (glyph-collection-name)+ glyph-collection-name ::= STRUCTURED-NAME
EXCGLYPHCOLS is a value-list of structured glyph collection names, the glyphs in the coliections thereby indicated to be excluded from the glyph complement.
excglyphcols-property ::= excglyphcols-name, excglyphcols-value-value-list excglyphcols-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//EXCGLYPHCOLS excglyphcols-value-value-list ::= (glyph-collection-name)+
INCGLYPHS is a value-list of structured glyph names, thereby indicated to be included in the glyph complement, subject to modification by the presence of other glyph complement properties.
incglyphs-property ::= incglyphs-name, incglyphs-value-value-list incglyphs-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//INCGLYPHS incglyphs-value-value-list ::= (glyph-name)+ glyph-name ::= STRUCTURED-NAME
EXCGLYPHS is a value-list of structured glyph names, thereby indicated to be excluded from the glyph complement.
excglyphs-property ::= excglyphs-name, excglyphs-value-value-list excglyphs-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//EXCGLYPHS excglyphs-value-value-list ::= (glyph-name)+
DSNSIZE is a rational, the recommended body size at which the font resource is designed to be used, in units of millimeters, according to the judgment of the design source (DSNSOURCE). The value of this propety also establishes a default body size at which the font resource is to be used if no other size is specified in a font reference.
MINSIZE and MAXSIZE are rationals, the recommended minimum and maximum of the range of body sizes over which the font resource is designed to be linearly scaled, each size specified in units of millimeters, according to the judgment of the design source (DSNSOURCE). If both minimum and maximum sizes are the same as the design size, the font resource is designed to be used only at that one size.
In effect, the use of the DSNSIZE, MINSIZE, and MAXSIZE properties allow for the definition of multiple font masters for typeface designs that require this level of typographic specification.
dsnsize-property ::= dsnsize-name, dsnsize-value dsnsize-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DSNSIZE dsnsize-value ::= RATIONAL minsize-property ::= minsize-name, minsize-value minsize-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINSIZE minsize-value ::= RATIONAL maxsize-property ::= maxsize-name, maxsize-value maxsize-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXSIZE maxsize-value ::= RATI0NAL
NOTE 20 The size at which the font resource will actually be used and imaged is usually determined, not directly by the font resource, but by the presentation device imaging the font resource, acting under direct or indirect control of the end user, e.g., as specified via the content of a document.
CAPHEIGHT is an unsigned rel-rational, the nominal height of the capital (major) glyphs contained in the font resource, as specified by the data source (DATASOURCE). Where applicable, defined to be the nominal height of the capital letter "X" (Latin, Greek, Cyrillic. etc.).
capheight-property ::= capheight-name, capheight-value capheight-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//CAPHE1GHT capheight-value ::= REL-RATIONAL -- unsigned
LCHEIGHT is an unsigned rel-rational, the nominal height of the lowercase (mean) glyphs contained in the font resource, as specified by the data source (DATASOURCE). Where applicable, defined to be the nominal height of the lowercase letter "x" (Latin, Cyrillic, etc.).
lcheight-property ::= lcheight-name, lcheight-value lcheight-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//LCHE1GHT lcheight-value ::= REL-RATIONAL -- unsigned
NOTE 21 This property is defined to be equivalent to the capital height (CAPHEIGHT) for font resources which contain no lowercase glyphs (e.g., Ideographic, Hebrew, etc.).
MINFEATSZ is an unsigned rel-rational, the size of the smallest non-terminating feature in the glyph shapes of the font resource.
minfeatsz-property ::= minfeatsz-name, minfeatsz-value minfeatsz-name ::= STRUCTURED-NAME -- ISO/1EC 9541-1//MINFEATSZ minfeatsz-value ::= REL-RATIONAL -- unsigned
NOTE 22 MINFEATSZ might be the thickness of a stroke, or of a serif if present.
NOMCAPSTEMWIDTH is an unsigned rel-rational, the nominal width of the main stems of the capital (major) glyphs contained in the font resource, measured perpendicular to the posture angle (POSTUREANGLE), as specified by the data source (DATASOURCE). Where applicable, defined to be the nominal stem width of the Latin capital letter "I".
nomcapstemwidth-property ::= nomcapstemwidth-name, nomcapstemwidth-value nomcapstemwidth-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//NOMCAPSTEMWIDTH nomcapstemwidth-value ::= REL-RATI0NAL -- unsigned
NOMLCSTEMWIDTH is an unsigned rel-rational, the nominal width of the main stems of the lowercase (mean) glyphs contained in the font resource, measured perpendicular to the posture angle (POSTUREANGLE), as specified by the data source (DATASOURCE). Where applicable, defined to be the nominal stem width of the Latin lowercase letter "i".
nomlcstemwidth-property ::= nomlcstemwidth-name, nomlcstemwidth-value nomlcstemwidth-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//NOMLCSTEMWIDTH nomlcstemwidth-value ::= REL-RATI0NAL -- unsigned
NOTE 23 This property is defined to be equivalent to the nominal capital stem width (NOMCAPSTEMWIDTH) for font resources which contain no lowercase glyphs (e.g., Ideographic, Hebrew, etc.).
NOMWRMODE is a structured-name, the name of the nominal writing mode, i.e., the mode in which the font resource is to be used if no other mode is specified in a font reference, one of those writing modes defined in the writing mode name property (WRMODENAME).
nomwrmode-property ::= nomwrmode-name, nomwrmode-value nomwrmode-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//NOMWRMODE nomwrmode-value ..= STRUCTURED-NAME
The values of certain font resource properties depend upon the writing mode in which they are nested; this dependence is established to allow the remainder of the font resource information, particularly the glyph shape representations, to be used in multiple modes.
Each writing mode is identified by a structured writing mode name; each mode is associated with the setting of text in a writing system, usually corresponding to a nominal escapement direction of the font in that mode, the direction specified within the glyph coordinate system. Examples of such modes might include left-to-right, top-to-bottom, right-to-Ieft, etc. Refer to figure 1, figure 2, and figure 3.
Figure 2 - A typical Ideographic glyph in the TOP-TO-BOTTOM writing mode
WRMODES is a property-list of writing mode property-list, defining all writing mode properties associated with this font resource.
wrmodes-property-list ::= wrmodes-name, wrmodes-value-property-list wrmodes-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//WRMODES wrmodes-value-property-list ::= (wrmode-property-list | property-list)*
WRMODE is a property-list of writing mode properties, defining a writing mode and its modal properties. This property-list is repeated for each writing mode supported by the font resource.
wrmode-property-list ::= wrmode-name, wrmode-value-property-list wrmode-name ::= structured-name -- ISO/IEC 9541-1//WRMODE wrmode-value-property-list ::= wrmodename-property, (nomescdir-property | escclass-property | avgescx-property | avgescy-property | avglcescx-property | avglcescy-property | avgcpescx-property | avgcpescy-property | tabescx-property | tabescy-property | maxfontext-property | sectors-property-list | escadjs-property-list | minescadjsze-property | maxescadjsze-property | scores-property-list | vscripts-property-list | minlinesp-property | minanascale-property | maxanascale-property | nomalign-property | alignmodes-property-list | copyfits-property-list | dsnwordadd-property | minwordadd-property | maxwordadd-property | dsnwordampl-property | minwordampl-property | maxwordampl-property | dsnletteradd-property | minletteradd-property | maxletteradd-property | dsnletterampl-property | minletterampl-property | maxletterampl-property | glyphmetrics-property-list | property-list)*
Figure 3 - A typical Arabic glyph in the RIGHT-TO-LEFT writing mode
The WRMODENAME property shall be unique within the context of the WRMODES property-list and shall be the first property in its associated property-list; all other properties can appear in any order.
The remainder of this clause defines the ISO/IEC 9541 font properties which may appear within each writing mode property-Iist.
WRMODENAME is a structured-name, the name that identifies the writing mode.
The ISO/IEC 9541 writing mode object names are
LEFT-TO-RIGHT => A mode for normal setting of text in a writing system whose nominal escapement is in a left-to-right, horizontal direction, i.e., 0° (e.g., Latin, Cyrillic, Greek, horizontal Kanji/Kana); RIGHT-TO-LEFT => A mode for normal setting of text in a writing system whose nominal escapement is in a right-to-left, horizontal direction, i.e., 180° (e.g., Hebrew, Arabic); TOP-TO-BOTTOM => A mode for normal setting of text in a writing system whose nominal escapement is in a top-to-bottom, vertical direction, i.e., 270° (e.g., vertical Kanji/Kana). wrmodename-property ::= wrmodename-name, wrmodename-value wrmodename-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//WRMODENAME wrmodename-value ::= STRUCTURED-NAME
NOTE 24 Other structured writing mode names are possible, but their significance is not defined within ISO/IEC 9541.
NOMESCDIR is an angle, the nominal angle of escapement direction of this writing mode of the font resource.
nomescdir-property ::= nomescdir-name, nomescdir-value nomescdir-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//NOMESCDIR nomescdir-value ::= ANGLE
ESCCLASS is a code, indicating the coded escapement class of this writing mode of the font resource; one of
1 => monospaced, the net escapements of all glyphs in this mode of the font resource are the same; 2 => proportional, the net escapements are not all the same. escclass-property ::= escclass-name, escclass-value escclass-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//ESCCLASS escclass-value ::= CODE
NOTE 25 A character cell font is a special case of a monospaced font resource that conforms to thetraditional typewriter character cell model, i.e., glyphs are modeled as rectangular boxes of thesame width and height which can be imaged consecutively to form text strings and text lines. By definition, all glyphs have the same escapement and no glyph shapes extend outside the cell, i.e., the maximum font extents (MAXFONTEXT) do not exceed the box formed by the accumulated glyph position and escapement points (PX, PY, EX, and EY) and the left and right minimum line spacing values (MINLlNESP).
AVGESCX and AVGESCY are rel-rationals, the x and y components, respectively, of the unweighted arithmetic average of the absolute value of the net escapement distances of all glyphs in this writing mode of the font resource. By convention, either of these properties defaults to zero if not specified in a font resource.
avgescx-property ::= avgescx-name, avgescx-value avgescx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//AVGESCXavgescx-value ::= REL-RATIONAL avgescy-property ::= avgescy-name, avgescy-value avgescy-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//AVGESCY avgescy-value REL-RATI0NAL
NOTE 26 If this mode of the font resource is monospaced, as indicated by the escapement class property(ESCCLASS), then this average escapement is also the escapement of every glyph in this mode of the font resource.
AVGLCESCX and AVGLCESCY are rel-rationals, the x and y components, respectively, of the unweighted arithmetic average of the absolute value of the net escapement distances of the lowercase (mean) glyphs in this writing mode of the font resource. Where appropriate, lowercase glyphs are defined to be the Latin lowercase letters "a - z" inciusive, and their accented variants. By convention, either of these property values defaults to zero if not specified in a font resource.
avglcescx-property ::= avglcescx-name, avglcescx-value avglcescx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//AVGLCESCX avglcescx-value ::= REL-RATI0NAL avglcescy-property ::= avglcescy-name, avglcescy-value avglcescy-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//AVGLCESCY avglcescy-value ::= REL-RATIONAL
NOTE 27 These property values are defined to be the average capital escapement (AVGCAPESCX, AVGCAPESCY) for font resource writing modes that contain no lowercase glyphs, e.g., Ideographic, Hebrew.
AVGCAPESCX and AVGCAPESCY are rel-rationals, the x and y components, respectively, of the unweighted arithmetic average of the absolute value of the net escapement distances of the capital (major) glyphs in this writing mode of the font resource. Where appropriate, capital glyphs are defined to be the Latin capital letters "A - Z" inclusive, and their accented variants. By convention, either of these property values defaults to zero if not specified in a font resource.
avgcpescx-property ::= avgcpescx-name, avgcpescx-value avgcpescx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//AVGCAPESCX avgcpescx-value ::= REL-RATIONAL avgcpescy-property ::= avgcpescy-name, avgcpescy-value avgcpescy-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//AVGCAPESCY avgcpescy-value ::= REL-RATOIONAL
TABESCX and TABESCY are rel-rationals, the signed x and y components, respectively, of the net escapement of the tabular figure and possible currency glyphs, if suitable for tabular setting, for this writing mode of the font resource. For Latin fonts, tabular figures are defined to be the Arabic numerals "0 - 9" inclusive. By convention, property values of zero denote that the figures in this writing mode of the font resource are not suitable for tabular setting applications.
tabescx-property ::= tabescx-name, tabescx-value tabescx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//TABESCX tabescx-value ::= REL-RATIONAL tabescy-property ::= tabescy-name, tabescy-value tabescy-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//TABESCY tabescy-value ::= REL-RATIONAL
MAXFONTEXT is an ordered-value-list of four rel-rationals, the x and y coordinates of the minimum and maximum font extents, respectively. The minimum and maximum font extents are the signed minimum (most negative, least positive) and signed maximum (most positive, least negative), respectively, of the x and y components of the corresponding glyph extent of all of the glyphs in this writing mode of the font resource.
maxfontext-property ::= maxfontext-name, maxfontext-value-value-list maxfontext-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXFONTEXT maxfontext-value-value-list ::= maxfontext-minx, maxfontext-miny, maxfontext-maxx, maxfontext-maxy maxfontext-minx ::= REL-RATIONAL maxfontext-miny ::= REL-RATI0NAL maxfontext-maxx ::= REL-RATI0NAL maxfontext-maxy ::= REL-RATI0NAL
Certain font resources will accomplish most or all glyph pairwise escapement adjustment by defining forward and backward sector data for each glyph. The sectors are defined as bands in the nominal escapement direction, in this writing mode of the font resource. These bands often overlap, and span sections of the glyph shapes which when imaged successively, may visually interact resulting in apparent excessive or insufficient inter-glyph spacing.
SECTORS is an ordered-value-list of sector data structures, describing the number and extents of the sector-pairwise escapement adjustments for this writing mode of the font resource. Each sector is an ordered-value-list of two rel-rationals, the left and right extents defining the sector, respectively, as measured relative to the nominal escapement direction (NOMESCDIR) of this writing mode of the font resource.
SECTORS is ordered according to decreasing values of each sector's left extent; the number and order paralleling that of each glyph's forward and backward sector adjustment extents for this writing mode [see the per-glyph sector-pairwise escapement adjustment extents properties (SPEAFORWDX, SPEAFORWDY, SPEABACKWDX, and SPEABACKWDY), 8.8.1.5.1.3].
sectors-property ::= sectors-name, sectors-value-value-list sectors-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SECTORS sectors-value-value-list ::= (sector)+ -- ordered by decreasing sector-left-extent sector ::= sector-left-extent, sector-right-extent sector-left-extent ::= REL-RATI0NAL sector-right-extent ::= REL-RATIONAL
ESCADJS is a property-list of all c1ass-pairwise and scale escapement adjustment property-lists,suggesting escapement adjustments between successively imaged glyphs in this writing mode of the font resource.
escadjs-property-list ::= escadjs-name, escadjs-value-property-list escadjs-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//ESCADJS escadjs-value-property-list ::= (escadj-property-list | property-list)*
ESCADJ is a property-list, defining the properties for a single escapement adjustment mode for this writing mode of the font resource. This property-list is repeated for each escapement adjustment mode supported by this writing mode of the font resource.
escadj-property-list ::= escadj-name, escadj-value-property-list escadj-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//ESCADJ escadj-value-property-list ::= escadjname-property, (cpea-property-list | sec-property-list | property-list)*
The ESCADJNAME propety shall be unique within the context of the ESCADJS property-list and shall be the first property in its associated property-list; all other properties can appear in any order.
ESCADJNAME is a structured-name, the name that identifies the escapement adjustment mode.
The ISO/IEC 9541 escapement adjustment mode object names, are
LOOSE => Anescapement adjustment mode for loose fit; NORMAL => Anescapement adjustment mode for normal fit; KERN => An escapement adjustment mode for kerned fit; TIGHT => An escapement adjustment mode for tight fit; TOUCH => An escapement adjustment mode where glyph shapes touch. escadjname-property ::= escadjname-name, escadjname-value escadjname-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//ESCADJNAME escadjname-value ::= STRUCTURED-NAME
NOTE 28 Other structured escapement adjustment mode names are possible, but their significance is not defined within ISO/IEC 9541.
Certain font resources will accomplish most or all glyph pairwise escapement adjustment by clustering similar forward and backward shape profiles into arbitrary numeric pairwise escapement adjustment classes, and by defining two-dimensional arrays of x or y escapement adjustments that correspond to these classes for each named escapement adjustment mode associated with this writing mode of the font resource. Each glyph property-list then includes an indication of the glyph's forward and backward class-pairwise escapement adjustment class, which can be used to retrieve the appropriate escapement adjustment for a given pair of glyphs.
CPEA is a property-list of the class-pairwise escapement adjustment properties for the named escapement adjustment mode associated with this writing mode of the font resource, suggesting the escapement adjustments for successive glyphs according to their respective forward and backward-direction class-pairwise escapement adjustment classes.
cpea-property ::= cpea-name, cpea-value-property-list cpea-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//CPEA cpea-value-property-list ::= (ncpeaforwd-property | ncpeabackwd-property | cpeax-property | cpeay-property | property-list)*
The NCPEAFORWD and NCPEABACKWD properties are required.
NCPEAFORWD and NCPEABACKWD are cardinals, the number of forward-direction and backward-direction escapement adjustment classes, respectively, defined for this class-pairwise escapement adjustment property-list.
ncpeaforwd-property ::= ncpeaforwd-name, ncpeaforwd-value ncpeaforwd-name ::= STRUCTURED-NAME -- ISOIEC 9541-1//NCPEAFORWD ncpeaforwd-value ::= CARDINAL ncpeabackwd-property ::= ncpeabackwd-name, ncpeabackwd-value ncpeabackwd-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//NCPEABACKWD ncpeabackwd-value ::= CARDINAL
CPEAX and CPEAY are ordered-value-lists of the x and y components, respectively, of the suggested c1ass-pairwise escapement adjustments between glyphs having the forward-direction and backward-direction escapement adjustment classes defined for this class-pairwise escapement adjustment property-list. [See the class-pairwise escapement adjustment indicator glyph property (CPEAI), 8.8.1.6].
Each CPEAX and CPEAY value-Iist effectively defines a fully populated NCPEAFORWD by NCPEABACKWD two-dimensional array of adjustment values, stored such that the second dimension varies most rapidly. The forward-direction escapement adjustment class is represented by the first dimension; the backward-directionescapement adjustment class is represented by the second dimension.
cpeax-property ::= cpeax-name, cpeax-value-value-list cpeax-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//CPEAX cpeax-value-value-list ::= (cpea-adj)+ -- n x m array, ordered m first cpea-adj ::= REL-RATIONAL cpeay-property ::= cpeay-name, cpeay-value-value-list cpeay-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//CPEAY cpeay-value-value-list ::= (cpea-adj)+ -- n x m array, ordered m first
Let CPEAX and CPEAY be two-dimensional arrays giving the x and y components of the class-pairwise escapement adjustments, respectively, for the named escapement adjustment mode; let i and j be the forward and backward class-pairwise escapement adjustment class indicators for glyphs a and b, respectively. The class-pairwise escapement adjustment for glyph a, then, is given by
CPEAX [(i * NCPEABACKWD) + j] CPEAY [(i * NCPEABACKWD) + j]
Scale escapement correction suggests the addition or subtraction of a uniform amount of space to or fromthe sides of most glyphs in a writing mode of a font resource to correct for Iinear scaling artifacts. Suchcorrection is usually inversely proportional to the target font size, i.e., inter-glyph space is decreasedas the target font size increases. Unless otherwise specified in a font reference, the target font size isthe size at which the font resource is actually imaged. Multiple such linear functions may be defined, eachcommonly called a track.
SEC is a property-list, of the scale escapement correction properties for the named escapement adjustmentmode associated with this writing mode of the font resource, suggesting a number of inter-glyph escapementadjustments as a function of font size. Only scale-adjusting glyphs may be so adjusted [see the escapementadjustment indicator glyph property (EAI), 8.8.1.7].
sec-property-list ::= sec-narne, sec-value-property-list sec-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//8EC sec-value-property-list ::= (secx-property | secy-property | property-list)*
SECX and SECY are ordered-value-lists, of secrange data structures, describing the x and y components, respectively, of the scale escapement corrections for this scale escapement correction propety-list. Each secrange defines an ordered-value-list of secsze and secadj values giving the x or y scale escapement correction for a specific font size.
Secsze is a rational, the recommended font size, in units of millimeters, for which the associated scaleescapement correction value is designed to be applied. Secadj is a rel-rational, the x or y component of the suggested scale escapement correction. This adjustment is to be added half before and half after each glyph's escapement.
In effect, each secrange defines the start or end of a correction range, and the correction valueassociated with the start or end of that range. Linear interpolation should be performed within the correction range to calculate the appropriate escapement correction for font sizes not directly specified. By convention, the first scale escapement correction applies to all font sizes less than or equal to its associated secsze value, and the last scale escapement correction applies to all font sizes greater than or equal to its associated secsze value.
secx-property ::= secx-name, secx-value-value-list secx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SECX secx-value-value-list ::= (secrange)+ secrange ::= secsze, secadj secsze ::= RATIONAL secadj ::= REL-RATIONAL secy-property ::= secy-name, secy-value-value-list secy-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SECY secy-value-value-list ::= (secrange)+
MINESCADJSZE and MAXESCADJSZE are rationals, the recommended minimum and maximum of the range of font sizes over which the pairwise, class-pairwise and sector-pairwiseescapement adjustment glyph properties are designed to be usable for this writing modeof this font resource, according to the judgment of the design source (DSNSOURCE). Eachsize is specified in units of millimeters.
minescadjsze-property ::= minescadjsze-name, minescadjsze-value minescadjsze-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINESCADJSZE minescadjsze-value ::= RATIONAL maxescadjsze-property ::= maxescadjsze-name, maxescadjsze-value maxescadjsze-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXESCADJSZE maxescadjsze-value ::= RATIONAL
A score is a line drawn through or along a line of text, parallel to the escapementdirection, often used for emphasis. Commonly used types of scores include underscores,overscores, and throughscores (the last also known as a strike-out). This property-listis also used to define positioning information for Kanji kendot.
SCORES is a property-list of score property-list, defining the scores for this writing mode of the font resource. Each score property-list usually contains the structured score name and corresponding translation and score thickness properties which when applied to this writing mode or the font resource will produce the associated score.
scores-property-list ::= scores-name, scores-value-property-list scores-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SCORES scores-value-property-list ::= (score-property-list | property-list)*
SCORE is a property-list, defining a score for this writing mode of this font resource.This property-list is repeated for each score supported by this writing mode of thefont resource.
score-property-list ::= score-name, score-value-property-list score-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SCORE score-value-property-list ::= scorename-property, (scoreoffsetx-property | scoreoffsety-property | scorethick-property | property-list)*
The SCORENAME propety shall be unique within the context of the SCORES property-listand shall be the first propety in its associated property-list; all other properties can appear in any order.
SCORENAME is a structured-name, the name that identifies the type of score.
The ISO/IEC 9541 score object names, are
RIGHTSCORE => A score drawn 270° counterclockwise from the escapement direction (i.e., to the right of the path while facing along the path), and near the right font extent of the font resource in this writing mode. In a left-to-right writing mode this constitutes an underscore; LEFTSCORE => A score drawn 90° counterclockwise from the escapement direction (i.e., to the left of the path), and near the left font extent of the font resource in this writing mode. In a left-to-right writing mode this constitutes an overscore; THROUGHSCOR => A score drawn through the visual centers of the glyphs in this mode, i.e., a throughscore; KENDOT => A score placed as a centered dot on a line at 90° to the escapement path and near to the left font extent of the font resource in this writing mode. Intended to be used in Kanji, the kendot constitutes an emphasis and has significance similar to an underscore in Latin fonts. scorename-property ::= scorename-name, scorename-value scorename-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SCORENAME scorename-value ::= STRUCTURED-NAME
Other structured variant score names are possible, but their significance is notdefined within ISO/IEC 9541.
SCOREOFFSETX and SCOREOFFSETY are rel-rationals, the signed x and y components, respectively, of the offset distance of the center of the named score, relative to the active position point of regular text, measured in the glyph coordinate system. By convention, either of these properties defaults to zero if not specified in a font resource.
scoreoffsetx-property ::= scoreoffsetx-name, scoreoffsetx-value scoreoffsetx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SCOREOFFSETX scoreoffsetx-value ::= REL-RATIONAL scoreoffsety-property ::= scoreoffsety-name, scoreoffsety-value scoreoffsety-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SCOREOFFSETY scoreoffsety-value ::= REL-RATIONAL
8.7.1.12.1.3 Score Thickness (SCORETHICK)
SCORETHICK is an unsigned rel-rational, the suggested thickness of the score.
scorethick-property ::= scorethick-name, scorethick-value scorethick-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SCORETHICK scorethick-value ::= REL-RATIONAL -- unsigned
Avariant script is one which varies from regular text by positionai offset, and possible size scale. Commonlyused types of variant scripts include superscripts and subscripts in Latin fonts, and Ruby scripts in Ideographic fonts.
VSCRIPTS is a property-list of variant script property-list, defining the variant scripts for this writing mode of the font resource. Each variant script property-list usually contains the structured variant script name and corresponding translation and scale factors which when applied to this writing mode of the font resource will produce the named variant.
vscripts-property-list ::= vscripts-name, vscripts-value-property-list vscripts-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//VSCRIPTS vscripts-value-property-list ::= (vscript-property-list, property-list)*
VSCRIPT is a property-list, defining a single variant script for this writing mode of this font resource.This property-list is repeated for each variant script supported by the writing mode.
vscript-property-list ::= vscript-name, vscript-value-property-list vscript-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//VSCRIPT vscript-value-property-list ::= vsname-property, (vsoffsetx-property | vsoffsety-property | vsscalex-property | vsscaley-property | property-list)*
The VSNAME property shall be unique within the context of the VSCRIPTS property-list and shall be the first propeerty in its associated property-list; all other properties can appear in any order.
VSNAME is a structured-name, the name that identifies the type of variant script.
The ISO/IEC 9541 variant script object names, are
LEFT-VSCRIPT => A variant script slightly reduced in size and slightly offset primarily in a direction 90° counterclockwise from the escapement direction (i.e., to the left of escapement path). In a left-to-right writing mode this constitutes a genenc superscnpt; RIGHT-VSCRIPT => A variant script slightly reduced in size and slightly offset primarily in a direction 270° counterclockwise from the escapement direction (i.e., offset to the right of the escapement path). In a left-to-right writing mode this constitutes a generic subscript; RUBY-VSCRIPT => A variant script reduced in size and offset primarily in a direction 90° counterclockwise from the escapement direction (i.e., offset to the left of the escapement path). This variant is intended to support Japanese Ruby text composition. vsname-property ::= vsname-name, vsname-value vsname-name ::= STRUCTURED-NAME --ISO/IEC 9541-1//VSNAME vsname-value ::= STRUCTURED-NAME
NOTE 29 Other structured variant script names are possible, but their significance is not definedwithin ISO/IEC 9541.
VSOFFSETX and VSOFFSETY are rel-rationals, the signed x and y components, respectively, of the offset distance of the named variant script, relative to the current position point of regular text, measured in the glyph coordinate system. By convention, either of these properties defaults to zero if not specified for a variant script.
vsoffsetx-property ::= vsoffsetx-name, vsoffsetx-value vsoffsetx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//VSOFFSETX vsoffsetx-value ::= REL-RATIONAL vsoffsety-property ::= vsoffsety-name, vsoffsetyvalue vsoffsety-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//VSOFFSETY vsoffsety-value ::= REL-RATIONAL
NOTE 30 As used with Ruby scripts, these values establish only the offset from the current writingmode's alignment line to the Ruby variant script alignment line, i.e., the offset parallel to the escapementdirection must be determined by the formatting process.
VSSCALEX and VSSCALEX are rationals, the x and y components, respectively, of the anamorphic scale factors to be applied to the named variant script, expressed as a ratio of the body size of variant script to the font size of regular text. By convention, this value defaults to 1, indicating that no scaling is to be performed.
vsscalex-property ::= vsscalex-name, vsscalex-value vsscalex-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//VSSCALEX vsscalex-value ::= RATIONAL vsscaley-property ::= vsscaley-name, vsscaley-value vsscaley-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//VSSCALEY vsscaley-value ::= RATIONAL
MINLlNESP is an ordered-value-list of two rel-rationals, the suggested left and right components of the minimum line-to-line spacing distance between successive lines of text. Each distance is measured from the nominal alignment line, perpendicular to the nominal escapement direction of this writing mode of the font resource, in the glyph coordinate system. This distance usually allows for all ascenders, descenders, accents, and a small shoulder, so that successive lines of text at this spacing will be separated bya small amount of white space.
minlinesp-property ::= minlinesp-name, minlinesp-value-value-list minlinesp-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINLINESP minlinesp-value-value-list ::= minlinesp-left, minlinesp-right minlinesp-left ::= REL-RATIONAL minlinesp-righy ::= REL-RATIONAL
MINANASCALE and MAXANASCALE are rationals, the recommended minimum and maximum anamorphic scale factors, respectively, of the range over which this font resource is designed to be scalable in the nominal escapement direction of this writing mode, each factor given as a ratio of the size for that direction to the font size of the font resource. By convention, each of these values defaults to 1, indicating that no anamorphic scaling is recommended.
minanascale-property ::= minanascale-name, minanascale-value minanascale-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINANASCALE minanascale-value ::= RATIONAL maxanascale-property ::= maxanascale-name, maxanascale-value maxanascale-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXANASCALE maxanascale-value ::= RATIONAL
NOTE 31 In a mode which is monospaced, as indicated by its escapement class property (ESCCLASS), these scale factors can be used in conjunction with the average escapement property (AVGESC) to determine the range of spacings over which this font resource may be anamorphically scaled.
NOMALlGN is a structured-name, the name of the nominal alignment mode for which this writing mode of the fontresource was designed to be used, according to the judgment of the design source (DSNSOURCE).
nomalign-property ::= nomalign-name, nomalign-value nomalign-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//NOMAL1GN nomalign-value ::= STRUCTURED-NAME
Different writing systems generally use one alignment mode when setting lines of text in that mode (usually vertical or horizontal), but sometimes incorporate text using font resources designed for a differentalignment mode (e.g., Japanese text composition often combines Kanji fonts with Latin fonts).
The alignment modes properties define the recommended translation from the nominal alignment mode to all other recognized alignment modes, and possible anamorphic scale factors to be applied to a font resource used in a secondary alignment mode. For example, Latin fonts are generally designed to be visually aligned to a baseline, while Ideographic fonts are generally designed to visually align to a centerline. The alignment modes property-list for an Ideographic font resource, then, would give the recommended offsets from the centerline alignment of the base Ideographic font to the baseline alignment of a secondary Latin font, and the anamorphic scale factors to be applied to the Latin font for proper body size balance, for a given writing mode. See figure 4.
ALlGNMODES is a property-list defining the alignment mode properties for this writing mode of the fontresource. Each alignment mode property-list usuall contains the structured alignment mode name andcorresponding translation and scale factors which define that alignment mode.
Figure 4 - Example of text using multiple alignment modes in the LEFT-TO-RIGHGT writing mode
alignmodes-property-list ::= alignmodes-name, alignmodes-value-property-list alignmodes-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//ALIGNMODES alignmodes-value-property-list ::= (align-property-list | property-list)*
ALIGN is a propertylist, defining a single alignment mode for this writing mode of thefont resource. This property-Iist is repeated for each alignment mode defined for the writing mode.
align-property-list ::= align-name, align-value-property-list align-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//ALIGN align-value-property-list ::= alignname-property, (alignoffsetx | alignoffsety | alignscalex | alignscaley | property-list)*
The ALIGNNAME property shall be unique within the context of the ALIGNMODES property-list and shall appear first in its associated property-list; all other properties canappear in any order.
ALIGNNAME is a structured-name, the name that identifies the type of alignment mode.
The ISO/IEC 9541 alignment mode object names, are
BASE-ALlGN => An alignment mode for the setting of text where most glyphs are visually aligned on an imaginary baseline, parallel to the writing mode's escapement direction. Some glyphs, such as the Latin lowercase "p", may extend past this baseline. Latin fonts are usually designed to be so aligned; CENTRE-ALlGN => An alignment mode for the setting of text where most glyphs are visually aligned to an imaginary centreline, parallel to the writing mode's escapement direction. Ideographic fonts, and Latin glyphs designed to be used with such fonts, are usually designed to be so aligned; TOP-ALlGN => An alignment mode for the setting of text where most glyphs are visually aligned to an imaginary topline, parallel to the writing mode's escapement direction. Hindi fonts are usually designed to be so aligned; BOTTOM-ALlGN => An alignment mode for the setting of text where most glyphs are visually aligned to an imaginary bottomline, parallel to the writing mode's escapement direction. alignname-property ::= alignname-name, alignname-value alignname-name ::= STRUCTURED-NAME --ISO/IEC 9541-1//AL1GNNAME alignname-value ::= STRUCTURED-NAME
NOTE 32 Other structured alignment mode names are possible, but their significance is not defined within ISO/IEC 9541.
ALIGNOFFSETX and ALIGNOFFSETY are rel-rationals, the signed x and y components, respectively, of the recommended offset distance of the named alignment mode's alignment line, relative to the nominal alignment line of this writing mode, measured in the glyph coordinate system. By convention, either of these properties defaults to zero if not specified in a font resource.
alignoffsetx-property ::= alignoffsetx-name, alignoffsetx-value alignoffsetx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//ALIGNOFFSETX alignoffsetx-value ::= REL-RATIONAL alignoffsety-property ::= alignoffsety-name, alignoffsety-value alignoffsety-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//ALIGNOFFSETY alignoffsety-value ::= REL-RATIONAL
ALIGNSCALEX and ALIGNSCALEY are rationals, the x and y components, respectively, of the anamorphic scale factors to be applied to the named alignment mode, expressed as a ratio of the body size of the alignment mode to the font size of regular text. By convention, this value defaults to 1, indicating that no scaling is to be performed.
alignscalex-property ::= alignscalex-nameCalignscalex-value alignscalex-name ::= STRUCTURED-NAME -- IS0/IEC 9541-1//ALIGNSCALEX alignscalex-value ::= RATIONAL alignscaley-property ::= alignscaley-nameCalignscaley-value alignscaley-name ::= STRUCTURED-NAME -- ISO/IEC 9541-l//ALIGNSCALEY alignscaley-value ::= RATIONAL
Copy fitting is the process of determining how many glyphs will occur in a given two dimensional space, typically a column of text, according to some copy fit technique. A copy fit value, as specified in a font resource, identifies the anticipated number of glyphs that would typically occur in a unit of measure according to that copy fit technique, which permits identification of a font resource or a substitute font resource that may satisfy a copy fitting requirement. The actual techniques used to calculate copy fit values vary by font supplier, and are generally language-dependent.
COPYFITS is a property-list, of copy fit property-list, defining named copy fit techniques and associated copy fit values for this writing mode of the font resource. Each copy fit propery-list usually contains the structured copy fit technique name, and a corresponding measure indicating the number of glyphs per centimeter, according to that copy fit technique.
copyfits-property-list ::= copyfits-name, copyfits-value-property-list copyfits-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//COPYFITS copyfits-value-property-list ::= (copyfit-property-list | property-list)*
COPYFIT is a property-list, defining a single copy fit technique and measure for this writing mode of the font resource. This property-list is repeated for each copy fit technique supported by this writing mode of the font resource.
copyfit-property-list ::= copyfit-name, copyfit-value-property-list copyfit-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//COPYFIT copyfit-value-property-list ::= copyfitname-property, (copyfitmeasure-property | property-list)*
The COPYFITNAME property shall be unique with the context of the COPYFITS property-list and shall be first in its associated property-list; all other properties can appear in any order.
COPYFITNAME is a structured-name, the name that identifies the copy fit technique.
copyfitname-property ::= copyfitname-name, copyfitname-value copyfitname-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//COPYFITNAME copyfitname-value ::= STRUCTURED-NAME
The structured copy fit technique name is assigned by the data source (DATASOURCE); its significance is not defined within ISO/IEC 9541.
COPYFITMEASURE is an unsigned rational, the number of glyphs per linear centimeter, as measured in the nominal escapement direction of the writing mode, according to the copy fit technique specified by the copy fit name (COPYFITNAME).
copyfitmeasure-property ::= copyfitmeasure-name, copyfitmeasure-value copyfitmeasure-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//COPYFITMEASURE copyfitmeasure-value ::= RATIONAL -- unsigned
DSNWORDADD, MINWORDADD and MAXWORDADD are rel-rational, the design, recommended minimum and maximum additive escapement adjustments, respectively, which properly may be applied to word-spacing glyphs in this writing mode of the font resource for the purposes of text justification, according to the judgment of the design source (DSNSOURCE). The escapements of all such word-spacing glyphs are modified a constant amount.
DSNWORDAMPL, MINWORDAMPL and MAXWORDAMPL are rational, the design, recommended minimum and maximum multiplicative escapement adjustments, respectively, which properly may be applied to word-spacing glyphs in this writing mode of the font resource, for the purposes of text justification, according to the judgment of the design source (DSNSOURCE). As each glyph potentially has a different escapement, these multiplicative factors will generally modify the escapements of all such word-spacing glyphs an amount proportionate to the escapement of each glyph.
dsnwordadd-property ::= dsnwordadd-name, dsnwordadd-value dsnwordadd-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DSNWORDADD dsnwordadd-value ::= REL-RAT10NAL dsnwordampl-property ::= dsnwordampl-name, dsnwordampl-value dsnwordampl-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DSNWORDAMPL dsnwordampl-value ::= RATIONAL minwordadd-property ::= minwordadd-name, minwordadd-value minwordadd-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINWORDADD minwordadd-value ::= REL-RAT10NAL minwordampl-property ::= minwordampl-name, minwordampl-value minwordampl-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINWORDAMPL minwordampl-value ::= RATIONAL maxwordadd-property ::= maxwordadd-name, maxwordadd-value maxwordadd-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXWORDADD maxwordadd-value ::= REL-RATIONAL maxwordampl-property ::= maxwordampl-name, maxwordampl-value maxwordampl-name ::= STRUCTURED-NAME -- 1SO/IEC 9541-1//MAXWORDAMPL maxwordampl-value ::= RATIONAL
NOTE 33 These properties usually increase or decrease the total escapement, in the direction of the unmodified escapement, of the glyph(s) to which they are applied [see the escapement adjustment indicator (EAI) glyph property, 8.8.1.7].
NOTE 34 The escapement adjustment values are relative to the design size (DSNSIZE) and minimum line spacing (MINLlNESP) of the font resource, assuming an appropriate number of glyphs per text line. Modifications to the adjustment values are generally required when scaling the font resource smaller or larger than the design size.
NOTE 35 These properties are not defined for font resources intended for writing systems that do not generaliy support the notion of word, e.g., Ideographic fonts as used in Japanese composition.
DSNLETIERADD, MINLETIERADD and MAXLETTERADD are rel-rational, the design, recommended minimum and maximum additive inter-glyph escapement adjustments, respectively, which properly may be made to letter-spacing glyphs in this writing mode of the font resource for the purposes of text justification, according to the judgment of the design source (DSNSOURCE). The escapements of all such letter-spacing glyphs are modified a constant amount.
DSNLETTERAMPL, MINLETIERAMPL and MAXLETTERAMPL are rational, the design, recommended minimum and maximum multiplicative escapement adjustments, respectively, which properly may be made to letter-spacing glyphs in this writing mode of the font resource for the purposes of text justification, according to the judgment of the design source (DSNSOURCE). As each glyph potentially has a different escapement, these multiplicative factors will generally modify the escapements of all such letter-spacing glyphs an amount proportionate with the escapement of each glyph.
dsnletteradd-property ::= dsnletteradd-name, dsnletteradd-value dsnletteradd-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DSNLETTERADD dsnletteradd-value ::= REL-RAT10NAL dsnletterampl-property ::= dsnletterampl-name, dsnletterampl-value dsnletterampl-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//DSNLETTERAMPL dsnletterampl-value ::= RATIONAL minletteradd-property ::= minletteradd-name, minletteradd-value minletteradd-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINLETTERADD minletteradd-value ::= REL-RATI0NAL minletterampl-property ::= minletterampl-name, minletterampl-value minletterampl-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINLETTERAMPL minletterampl-value ::= RATIONAL maxletteradd-property ::= maxletteradd-name, maxletteradd-value maxletteradd-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXLETTERADD maxletteradd-value ::= REL-RATIONAL maxletterampl-property ::= maxletterampl-name, maxletterampl-value maxletterampl-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXLETTERAMPL maxletterampl-value ::= RATI0NAL
NOTE 36 These properties usually increase or decrease the total escapement, the modification to be added half before and half after each glyph in the direction of the unmodified escapement, of the glyph(s) to which they are applied (see the escapement adjustment indicator (EAI) glyph property, 8.8.1.7).
NOTE 37 The escapement adjustment values are relative to the design size (DSNSIZE) and minimum line spacing (MINLINESP) of the font resource, assuming an appropriate number of glyphs per text line. Modifications to the adjustment values are generally required when scaling the font resource smaller or larger than the design size.
Each writing mode of a font resource contains a list of glyph metrics properties for each glyph defined in that writing mode of the font resource.
Each glyph metrics property-list usualiy specifies a structured glyph name, the glyph extents, position and escapement points, etc. Specific glyphs may also define ligature relationships,pairwise and sector-pairwise escapement adjustments, etc.
GLYPHMETRICS is a property-list of glyph metrics property-list, defining all glyph metrics properties associated with this writing mode of the font resource.
glyphmetrics-property-list ::= glyphmetrics-name, glyphmetrics-value-property-list glyphmetrics-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GLYPHMETRICS glyphmetrics-value-property-list :: (gmetric-property-list | property-list)*
GMETRIC is a property-list, defining all the metrics properties associated with this glyph of the font resource, in this writing mode. A modal glyph metrics property-list will normally have a number of such glyph metrics roperties.
gmetric-property-list ::= gmetric-name, gmetric-value-property-list gmetric-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GMETRIC gmetric-value-property-list ::= gname-property, (px-property | py-property | ex-property | ey-property | ext-property | lgs-property-list | peas-property-list | cpeai-property | eai-property | minex-property | miney-property | maxex-property | maxey-property | property-list)*
The GNAME property shall be unique within the context of the GLYPHMETRICS property-list and shall be first in its associated property-list; all other properties can appear in any order.
The remainder of this clause defines the ISO/IEC 9541 modal glyph metrics properties.
GNAME is a structured-name, the structured glyph name that identifies this glyph.
gname-property ::= gname-name, gname-value gname-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GNAME gname-value ::= STRUCTURED-NAME
In imaging glyphs in sequence, each glyph is usually first translated so that its scaled position point is at the current position on the presentation surface, then the glyph shape is imaged, then the current position is moved to the glyph's scaled escapement point. The net escapement, i.e., the net change in current position for ordinary imaging of a glyph in this writing mode, is thus the distance from the position point to the escapement point. The escapement direction for the glyph is the direction from its position point to escapement point.
For operational efficiency, however, glyphs should generally be defined within the glyph coordinate system so thatthe most frequently used position point coincides with the origin of the glyph coordinate system, and the escapement points lie on the x or y axis. For example, for Latin fonts, which are normally designed to be used in a left-to-right writing mode, visually aligned on a common baseline, each glyph generally would be positioned in the glyph coordinate system so that the position point coincides with the origin of the glyph coordinate system, and the escapement point lies on the horizontal x axis. In this case, only the EX property need be specified.
Ideographic fonts are often designed to be used in both left-to-right and top-to-bottom writing modes, visually centered on a horizontal or vertical centreline, respectively. Each glyph, then, would generally be positioned in the glyph coordinate system so that the position and escapement points in the left-to right writing mode lie on the horizontal x axis, and conversely, in the top-to-bo ˇŠom writing mode, the position and escapement points would lie on the vertical y axis. For each writing mode, then, only the x or y component of these properties need be defined as the remaining components default to zero. See figure 2.
PX, PY, EX and EY are rel-rational, the x and y coordinates of the position and escapement points, respectively, of the named glyph in this writing mode of the font resource, as measured in the glyph coordinate system. Any of the coordinate values may be zero, i.e., on the glyph coordinate system axis or at its origin. By convention, these property values default to zero if not specified in a font resource.
px-property ::= px-name, px-value px-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//PX px-value ::= REL-RATIONAL py-property ::= py-name, py-value py-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//PY py-value ::= REL-RATIONAL ex-property ::= ex-name, ex-value ex-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//EX ex-value ::= REL-RATIONAL ey-property ::= ey-name, ey-value ey-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//EY ey-value ::= REL-RATIONAL
Let Px,y be the current position point on the presentation surface; let PX', PY', EX' and EY' be the scaled x and y components of the position and escapement points of the glyph, respectively. The net displacement of the current position point is given by:
P'x = Px - PX' + EX' P'y = Py - PY' + EY'
EXT is an ordered-value-list of four rel-rationals, the x and y coordinates of the minimum and maximum glyph extents, respectively, of the named glyph in this writing mode of the font resource, as measured from the named glyph's position point in the glyph coordinate system. All four extents are zero if the glyph has no shape, i.e., if it is a space.
ext-property ::= ext-name, ext-value-value-list ext-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//EXT ext-value-value-list ::= ext-minx, ext-miny, ext-maxx, ext-maxy ext-minx ::= REL-RATIONAL ext-miny ::= REL-RATIONAL ext-maxx ::= REL-RATIONAL ext-maxy ::= REL-RATIONAL
NOTE 38 Conceptually, an extent is the limit of the inked portion of the glyph shape definition as imaged on a presentation surface, not including any embedded whitespace. Also note that, within the model presented here, glyphs may kern, i.e., their shapes may extend beyond their position and escapement points (see figure 5).
LGS is an ordered-property-list of ligature property-list, defining all the possible ligature relationships for the named glyph in this writing mode of the font resource. LGS is ordered according to the successor glyph structured-name and the number of successor glyphs in the ligature relationship, longest successor list first.
lgs-property-list ::= lgs-name, lgs-value-property-list lgs-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//LGS lgs-value-property-list :: (lg-property | property-list)*
Figure 5 - Glyph extents showing a kern for a typical Latin glyph in the LEFT-TO-RIGHT writing mode
LG is a property-list, specifying a single possible ligature relationship for the named glyph in this writing mode of the font resource. A ligature relationship is composed of the named glyph and a number of successor glyphs (LGSN) which, when occurring in an electronic document in the given sequence, are equivalent to, and may be replaced with, the ligature specified by the LGN property.
lg-property ::= lg-name, lg-value-property-list lg-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//LG lg-value-property-list ::= lgn-property, (lgsn-property | property-list)*
The LGN property shall be unique within the context of the LGS property-list and shall be the first property in its associated property-list; all other properties can appear in any order.
NOTE 39 A ligature is consonant(s) and a vowel or consonants joined together and having a different design, but not a different pronunciation or meaning, than if separated. The definition of possible ligature relationships for a given glyph is highly dependent on the writing system and typeface design and will generally vary from one font resource to another.
LGN is a structured-name, the name that identifies the ligature glyph associated with the ligature relationship.
lgn-property ::= lgn-name, lgn-value lgn-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//LGN lgn-value ::= STRUCTURED-NAME
LGSN is an ordered-value-list of structured-name, the names that identify the successor glyphs associated with this ligature relationship, ordered according to the sequence of successor glyphs making up the ligature.
lgsn-property ::= lgsn-name, lgsn-value-value-list lgsn-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//LGSN lgsn-value ::= (STRUCTURED-NAME)+
Certain font resources will accomplish most or all pairwise escapement adjustment by defining precise x and y values on a per-glyph basis for either or both pairwise or sector-pairwise adjustments. These per-glyph adjustments are usually designed to work in concert with the class-pairwise and scale escapement correction adjustments given for an entire writing mode of the font resource of the same escapement adjustment mode, if provided for that writing mode (see the escapement adjustments property (ESCADJS), 8.7.1.10).
PEAS is a property-list of pairwise escapement adjustment property-list, defining all the possible pairwise and sector-pairwise escapement adjustment relationships for the named glyph in this writing mode of this font resource.
peas-property-list ::= peas-name, peas-value-property-list peas-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//PEAS peas-value-property-list ::= (pea-property-list | property-list)*
PEA is a property-list, defining possible pairwise and sector-pairwise escapement adjustment relationships for the named glyph for a particular escapement adjustment mode. A PEAS property-list may have more than one such glyph pairwise escapement adjustment property-list.
pea-property-list ::= pea-name, pea-value-property-list pea-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//PEA pea-value-property-list ::= pean-property, (peax-property | peay-property | speaforwdx-property | speaforwdy-property | speabackwdx-property | speabackwdy-property | property-list)*
The PEAN property shall be unique within the context of the PEAS property-list and shall be the first property in its associated property-list; all other properties can appear in any order.
The remainder of this clause defines the ISO/IEC 9541 modal pairwise and sector-pairwise escapement adjustment propertles.
PEAN is a structured-name, the name that identifies the pairwise escapement adjustment mode.
The ISO/IEC 9541 pairwise escapement adjustment mode object names are given in 8.8.1.7.
pean-property ::= pean-name, pean-value pean-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//PEAN pean-value ::= STRUCTURED-NAME
Variations on pairwise setting can be approximated by linear interpolation of the x and y escapement adjustment values given for the KERN and TOUCH pairwise escapement adjustment modes.
NOTE 40 Other structured pairwise escapement adjustment mode names are possible, but their significance is not defined within ISO/IEC 9541.
PEAX and PEAY are value-lists of peascsr data structures, describing the x and y components, respectively, of the suggested pairwise escapement adjustments between the named glyph and various successor glyphs when imaged successively in this writing mode. No ordering is implied.
Each peascsr defines an ordered pair of peasn and pea-adj values, giving the structured-name for the successor glyph (peasn) and the x or y component of the suggested pairwise escapement adjustment for that successor glyph (pea-adj).
peax-property ::= peax-name, peax-value-value-list peax-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//PEAX peax-value-value-list ::= (peascsr)+ peascsr ::= peasn, pea-adj peasn ::= STRUCTURED-NAME pea-adj ::= REL-RATIONAL peay-property ::= peay-name, peay-value-value-list peay-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//PEAY peay-value-value-list ::= (peascsr)+
SPEAFORWDX and SPEAFORWDY are ordered-value-lists of ref-rationals, the x and y components, respectively, of the forward sector-pairwise escapement adjustment extents, for the named glyph in this writing mode of the font resource. SPEAFORWDX and SPEAFORWDY values are the designated forward extents of each sector of this glyph, measured in the glyph coordinate system, one extent per sector, in order by sector.
SPEABACKWDX and SPEABACKWDY are ordered-value-lists of rel-rationals, the x and y components, respectively, of the backward sector-pairwise escapement adjustment extents, for the named glyph in this writing mode of the font resource. SPEABACKWDX and SPEABACKWDY values are the designated backward extents of each sector of this glyph, measured in the glyph coordinate system, one extent per sector, in order by sector. See figure 6.
Figure 6 - Example of sector-pairwise escapement adjustment extents
speaforwdx-property ::= speaforwdx-name, speaforwdx-value-value-list speaforwdx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SPEAFORWDX speaforwdx-value-value-list ::= (REL-RATIONAL)+ speaforwdy-property ::= speaforwdy-name, speaforwdy-value-value-list speaforwdy-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SPEAFORWDY speaforwdy-value-value-list ::= (REL-RATIONAL)+ speabackwdx-property ::= speabackwdx-name, speabackwdx-value-value-list speabackwdx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SPEABACKWDX speabackwdx-value-value-list ::= (REL-RATIONAL)+ speabackwdy-property ::= speabackwdy-name, speabackwdy-value-value-list speabackwdy-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//SPEABACKWDY speabackwdy-value-value-list ::= (REL-RATIONAL)+
Let X, Yi be the sum of glyph a's ith sector-pairwise forward x and y extents and a successor glyph b's ith sector-pairwise backward x and y extents, for all i for which both those extents are given. Let X, Ymax be the signed maximum (most positive or least negative) of all such X, Yi's. Then the suggested escapement adjustment is X, Ymax. This distance will most often be negative so as to reduce the spacing between glyphs.
NOTE 41 It is up to the data source (DATASOURCE) to assure that the number, order and meaning of the forward and backward sector extents are the same for all glyphs of the font resource. However, the number, order and meaning of these property values are not generally the same across all font resources.
Class-pairwise escapement adjustment c1ass information is used to determine a suggested escapement adjustment based upon the forward and backward shape profiles of the named glyph and a possible successor glyph (see the c1ass-pairwise escapement adjustment property (CPEA), 8.7.1.10.1.2).
CPEAI is a an ordered-value-list of two cardinals, indicating the forward and backward pairwise escapement adjustment c1asses to which this glyph belongs, for this writing mode of the font resource.
cpeai-property ::= cpeai-name, cpeai-value-value-list cpeai-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//CPEAI cpeai-value-value-list ::= cpeai-forward, cpeai-backward cpeai-forward ::= CARDINAL cpeai-backward ::= CARDINAL
In general, a font resource will not provide all escapement adjustment properties, however, if present the exact adjustment given by the PEAX or PEAY property gives better typographic results over those determined from application of the glyph's sector-pairwise escapement or the c1ass-pairwise adjustment modal escapement adjustments.
If escapement adjustment is desired and the various modal and per-glyph escapement adjustment properties are present in a font resource, then these properties shall be added to glyph escapement on a per-escapement adjustment mode basis, according to the following algorithm:
a) scale escapement correction modal properties (SECX, SECY), per 8.7.1.10.1.3;
b) per-glyph pairwise escapement properties (PEAX, PEAY), if defined for the named glyph's successor, per 8.8.1.5. Done;
c) per-glyph sector-pairwise escapement properties (SPEAFORWDX, SPEAFORWDY) for the named glyph and per-glyph sector-pairwise escapement properties for the named glyph's successor (SPEABACKWDX, SPEABACKWDY), per 8.8.1.5. Done;
d) class-pairwise escapement adjustment modal properties (CPEAX, CPEAY), per 8.7.1.10.1.2;
e) Done.
EAI is a code, a coded value indicating whether or not the various forms of escapement adjustments (scale,wordspace or letterspace) are applicable to this glyph, in this writing mode of the font resource.Generally, wordspace-escapement adjustment may only be applied to space glyphs, whereas most glyphs may be letterspace-escapement adjusted (usually excepting multi-dot leaders, dashes, ligatures and other similar glyphs). By convention, this property value defaults to Scale/Letterspace-adjusting if not specified for this glyph metrics property-list.
The EAI property value is one of:
1 => Scale/Letterspace-adjusting; 2 => Wordspace“Æadjusting; 3 => Non-adjusting.
All other escapement adjustment indicator codes are reserved for future standardization.
eai-property ::= eai-name, eai-value eai-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//EAI eai-value ::= CODE
MINEX, MINEY, MAXEX and MAXEY are rel-rational, the recommended minimum and maximum adjusted escapement of this glyph in this writing mode of the font resource, as specified by the design source (DSNSOURCE). In effect, these properties serve as individual minimum and maximum escapement adjustment refinements to the overall limits imposed by the recommended modal letterspace and wordspace adjustments, according to the glyph's escapement indicator (see 8.7.1.19, 8.7.1.20, and 8.8.1.7).
minex-property ::= minex-name, minex-value minex-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINEX minex-value ::= REL-RATIONAL miney-property ::= miney-name, miney-value miney-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MINEY miney-value ::= REL-RATIONAL maxex-property ::= maxex-name, maxex-value maxex-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXEX maxex-value ::= REL-RATIONAL maxey-property ::= maxey-name, maxey-value maxey-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//MAXEY maxey-value ::= REL-RATIONAL
VUNITS and HUNITS are cardinals, the number of relative units equal to the extended body size of the font resource, as measured along the y axis and x axis respectively of the glyph coordinate system.
verticalunit-property ::= verticalunit-name, verticalunit-value verticalunit-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//VUNITS verticalunit-value ::= CARDINAL horizontalunit-property ::= horizontalunit-name, horizontalunit-value horizontalunit-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//HUNITS horizontalunit-value ::= CARDINAL
NOTE 1 The property RELUNITS specifies body size as measured only along the y axis of the glyph coordinate system. However, in some fonts, e.g., a certain Kanji font, dimensional references of their extended body size have to be defined in both x axis and y axis.
NOTE 2 The typical value of VUNITS should be 1000, so as to harmonize with that of RELUNITS.
FILLRATIO is a property-list, specifying a blackness of a glyph image of a reference glyph in the font resource.
fillratio-property ::= fillratio-name, fillratio-value-property-list fillratio-name ::=STRUCTURED-NAME -- ISO/IEC 9541-1//FILLRATIO fillratio-value-property-list ::= (blackness)+ blackness ::= reference-glyph, fillratio-value reference-glyph ::= MESSAGE -- specification of a typical glyph fillratio-value ::= RATIONAL -- (blackened area)x1000 /(VUNITS x HUNITS)
NOTE 3 Fill Ratio is used to determine an appropriate font substitution.
NOTE 4 In Latin fonts, "I" or "i" is used as a
reference glyph. In Japanese fonts, reference glyphs may
be " " or "
".
DSNAREAS is a property-list consisting of the property-lists that specify the design frames within which sets of glyph images are designed in their extended body sizes.
designareas-property ::= designareas-name, designareas-value-property-list designareas-name ::=STRUCTURED-NAME -- ISO/IEC 9541-1//DSNAREAS designareas-value-property-list ::= (designarea-property | property-list)+
DSNAREA is a property-list specifying the design frame as measured by rel-rationals along the y axis and x axis in each set of glyphs. The set of glyphs configures a subset of the glyph collection of the font resource.
designarea-property ::= designarea-name, designarea-value-property-list designarea-name ::=STRUCTURED-NAME -- ISO/IEC 9541-1//DSNAREA designarea-value-property-list ::= (letter-face)+ letter-face ::= dsnarea-glyphset-name, dsnarea-height, dsnarea-width dsnarea-glyphset-name ::= MESSAGE -- specification of glyph-set name dsnarea-height ::= REL-RATIONAL -- y value of the design frame dsnarea-width ::= REL-RATIONAL -- x value of the design frame
NOTE 5 A glyph-set need not be a registered glyph collection.
NOTE 6 The property DSNAREA shows an extent of glyph alignment compactness in a composed line or line progression.
AVRESC is a property-list consisting of the property-lists that specify the average sizes of bounding boxes which the designed glyph shapes actually cover in their design area.
averageesc-property ::= averageesc-name, averageesc-value-property-list averageesc-name ::=STRUCTURED-NAME -- ISO/IEC 9541-1//AVRESC averageesc-value-property-list ::= (averagelen-property | property-list)+
AVRLEN is a property-list specifying the average sizes of bounding box as measured by rel-rationals along the y axis and x axis in each set of glyphs, e.g., a katakana glyph set. The set of glyphs configures a subset of the glyph collection of the font resource.
averagelen-property ::= averagelen-name, averagelen-value-property-list averagelen-name ::=STRUCTURED-NAME -- ISO/IEC 9541-1//AVRLEN averagelen-value-property-list ::= (average-length)+ average-length ::= avrlen-glyphset-name, avrlen-height, avrlen-width avrlen-glyphset-name ::= MESSAGE -- specification of glyph-set name avrlen-height ::= REL-RATIONAL -- y value of the bounding box avrlen-width ::= REL-RATIONAL -- x value of the bounding box
NOTE 7 A glyph-set need not be a registered glyph collection. An average escapement of a glyph collection can be specified by the property AVGESCY or AVGESCX. The property AVRLEN can specify an average escapement of a part of the glyph collection.
NOTE 8 The property AVRLEN shows a limit of glyph alignment compactness in a composed line or line progression. The simpler functions can be provided by a-z length in Latin fonts.
NOTE 9 A relationship between VUNITS, HUNITS, DSNAREA and AVRLEN is shown in figure 7.
Figure 7 The relationship between VUNITS, HUNITS, DSNAREA and AVRLEN.
NOTE 10 The figure 5.1 illustrates only the relative positions of extended body size, design frame and bounding box.
In a simple formatting, kendots are supported by using the font property SCORE with specifying KENDOT score object. However, the property SCORE can only describe a simple dot with its specified offset and thickness.
More complicated formatting may require a particular shape for kendot. Generalized Kendot includes the capability to specify dot shape.
genkendot-property ::= genkendot-name, genkendot-value-property-list genkendot-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GENKENDOT genkendot-value-property-list ::= (genkendot-offsetx-property | genkendot-offsety-property | genkendot-thick-property | genkendot-shape-property)+ genkendot-offsetx-property ::= genkendot-offsetx-name, genkendot-offsetx-value genkendot-offsetx-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GENKENDOTOFFSETX genkendot-offsetx-value ::= REL-RATIONAL genkendot-offsety-property ::= genkendot-offsety-name, genkendot-offsety-value genkendot-offsety-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GENKENDOTOFFSETY genkendot-offsety-value ::= REL-RATIONAL genkendot-thick-property ::= genkendot-thick-name, genkendot-thick-value genkendot-thick-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GENKENDOTTHICK genkendot-thick-value ::= REL-RATIONAL genekendot-shape-property ::= genkendot-shape-name, genkendot-shape-value genkendot-shape-name ::= STRUCTURED-NAME -- ISO/IEC 9541-1//GENKENDOTSHAPE genkendot-shape-value ::= STRUCTURED-NAME -- Dot Glyph Name
ILCOBJ is a property-list consisting of property-lists that specify type, font size, typeface, rotation, position in writing direction, formatting information in writing direction, and position in line progression direction of an interlinear/intercharacter object.
Note that the properties are primitive properties to locate actually an interlinear/intercharacter object. There may be some GUI or convention for specification which can produce the properties.
ILC-property ::= ILC-name, ILC-value-property-list ILC-name ::= STRUCTURED-NAME ILC-value-property-list ::= (ILC-type-property|ILC-font-size-property| ILC-typeface-property|ILC-rotation-property| ILC-writing-direction-offset-property| ILC-formatting-type-property| ILC-line-progression-direction-offset-property)+ ILC-type-property ::= ILC-type-name, ILC-type-value -- type of Interlinear/intercharacter objects ILC-type-name ::= STRUCTURED-NAME ILC-type-value ::= STRUCTURED-NAME ILC-font-size-property ::= ILC-font-size-name, ILC-font-size-value-type, ILC-font-size-value -- Property for font size ILC-font-size-name ::= STRUCTURED-NAME ILC-font-size-value-type ::= "ABS" | "RELATIVE" ILC-font-size-value ::= REL-RATIONAL ILC-typeface-property ::= ILC-typeface-name, ILC-typeface-value -- Property for typeface ILC-typeface-name ::= STRUCTURED-NAME ILC-typeface-value ::= STRUCTURED-NAME ILC-rotation-property ::= ILC-rotation-name, ILC-rotation-value -- Property for rotation ILC-rotation-name ::= REL-RATIONAL ILC-rotation-value ::= 0|90|180|270 ILC-writing-direction-offset-property ::= ILC-writing-direction-offset-name, ILC-writing-direction-offset-value, ILC-writing-direction-offset-value -- Property for position in writing direction ILC-writing-direction-offset-name ::= STRUCTURED-NAME ILC-writing-direction-offset-value-type ::= "ABS" | "RELATIVE" ILC-writing-direction-offset-value ::= REL-RATIONAL ILC-formatting-type-property ::= ILC-formatting-type-name, ILC-formatting-type-value -- Property for formatting information in writing direction ILC-formatting-type-name ::= STRUCTURED-NAME ILC-formatting-type-value ::= "HEAD"|"CENTER"|"TAIL"|"JUSTIFICATION" ILC-line-progression-direction-offset-property ::= ILC-line-progression-direction-offset-name, ILC-line-progression-direction-offset-value, ILC-line-progression-direction-offset-value-type -- Property for position in line progression direction ILC-line-progression-direction-offset-name ::= STRUCTURED-NAME ILC-line-progression-direction-offset-value-type ::= "ABS" | "RELATIVE" ILC-line-progression-direction-offset-value ::= REL-RATIONAL
NOTE 1 It is required to specify the following character strings for processing an interlinear/intercharacter object:
NOTE 2 It is possible to associate multiple interlinear/intercharacter objects with the identical character string.
NOTE 3 ILC-type-property (type) specifies the type of an interlinear/intercharacter object.
NOTE 4 ILC-font-size-property (font size) specifies the font size with its absolute value or relative value with respect to the font size of the parent object.
NOTE 5 ILC-typeface-property (typeface name) specifies the typeface name.
NOTE 6 ILC-rotation-property (rotation) specifies the angle measured counterclockwise from the parent object's writing direction to the child object's writing direction. In many cases, interlinear objects have 0 degree and intercharacter objects have 270 degree (when the main text is horizontally composed) or 90 degree (when the main text is vertically composed).
NOTE 7 ILC-writing-direction-offset-property (offset in writing direction) specifies the offset in writing direction with its absolute value or relative value with respect to the font size of the parent object. This value shows the displacement between the positioning points of child object and parent object (see Figure 8, 9 and 10), and is measured in the parent object's coordinate system.
NOTE 8 ILC-formatting-type-property (formatting type information in writing direction) specifies the formatting information regarding the alignment in writing direction. When this property is specified, other properties for positioning in writing direction are overwhelmed.
NOTE 9 ILC-line-progression-direction-offset-property (offset in line progression direction) specifies the offset in line progression direction with its absolute value or relative value with respect to the font size of the parent object.
This value shows the displacement between the baselines of parent object and child object (see Figure 8, 9 and 10), and is measured in the parent object's coordinate system.
Figure 8 - Offsets in the case where writing direction of the parent object is left-to-right and rotation is 0 degree
Figure 9 - Offsets in the case where writing direction of the parent object is left-to-right and rotation is 270 degree
Figure 10 - Offsets in the case where writing direction of the parent object is top-to-bottom and rotation is 0 degree
This annex defines a typeface design grouping scheme whose purpose is to provide values for the mandatory DSNGROUP property defined in clause 8.6.15. This grouping scheme consists of a three-level hierarchical structure. The highest (most general) level of the hierarchy is the ISO Class, the second level of the hierarchy is the ISO Subclass, and the third (most specific) level of the hierarchy is the ISO Specific Group. Typeface examples for each Specific Group are shown and named wherever possible. These illustrations are intended to serve only as informative examples, not as a comprehensive catalog.
Typefaces which are similar in appearance or which have characteristics that would allow them to be reasonably substituted for each other, are grouped together.
Some type designs could be associated with more than one design group, but it is the responsibility of the type designer or font resource generator to choose the most appropriate group.
This typeface grouping scheme has the following intended purposes:
To aid both people and software applications in initial selection of typefaces, either in their system or on remove font servers, which closely resemble a specified style which is not available.
To provide information that will enable identification of fonts for different international scripts (such as Kanji and Latin) that will harmonize well when used on a page of a multi-script document (assuming the weights are matched). Assignment of suitable representations of different scripts to existing classes is encouraged to support this purpose.
To help software applications do font substitution, based on style characteristics, when a font referenced in a document is not available on a user's system. Font substitution based on style alone can cause a document to be reformatted since the metrics are likely to be different. However, this may be adequate for some applications. The classification information contained in this document can also be useful for systems capable of more advanced forms of substitution.
When using this grouping scheme, it may be necessary to consider properties additional to those described in clause 8 when selecting substitution fonts. Since the grouping value specifies only the style and appearance of a font, additional properties such as NOMCAPSTEMWIDTH, LCHEIGHT, and metrics can prove useful in matching the layout and typographic color of a page, and in achieving the best overall match.
NOTE 42 Throughout this grouping scheme, the term "serif" is used to denote both the traditional concept of the serifs of Roman typefaces, as well as any style of non-plain stroke-ending used in a non-Latin typeface. Although non-Latin typefaces with non-plain stem endings are included in groups with "serif" in their names, it may generally be improper to refer to them as "serif" typefaces. The term "sans serif" is used to denote a plain, unembellished stroke ending.
Typefaces in this class use as a source of their design the Uncial writing hands of Europe used from the 4th to the 10th Century.
These designs are characterized by having one set of alphabetic glyphs having a mixture of both upper and lowercase letter shapes consistent with the historical Uncial book hand.
Typefaces in this group have the characteristics of Uncial glyph images, but have plain stem endings.
Typefaces in this group have the characteristics of Uncial, and have the serifs that were typical of the historical forms.
The designs of this subclass are characterized primarily by having distinct and separate upper and lowercase letter shapes (a characteristic not found in historical examples).
Typefaces in this group have duplex Uncial forms with plain stem endings.
Typefaces in this group have duplex Uncial forms with serifs for stem endings.
Latin typefaces of this general class have the characteristics of being based on monumental lettering which was cut in stone. Generally they include only uppercase letters and are based on the proportions of the classic Roman inscriptional glyph images, e.g., having a narrow "E", "F", and "L".
These designs have solid stems.
Typefaces in this group are based on inscriptional styles, have solid stems, and plain stem endings.
Typefaces in this group are based on inscriptional styles, have solid stems, and non-plain stem endings.
These designs have a fine line in the stem which gives the appearance that the lettering is incised in stone or wood.
Inscriptional style typefaces with inlines and plain stem endings.
Inscriptional style typefaces with inlines and nonplain stem endings.
The designs of this subclass are characterized by single lines that define the contour or outline of the glyphs.
This group consists of outlined inscriptional styles with plain stem endings.
This group consists of outlined inscriptional styles with non-plain stem endings.
Designs in this class are characterized by relatively bold, angular, and condensed character shapes. Latin typefaces in this class are generally based on the late medieval European book hands known as the Blackletter style. Some variations include bold rounded styles as well as less formal designs showing cursive influences. Non-Latin typefaces in this class are those based on bold and angular designs.
The designs of this subclass are characterized by their condensed appearance; large x-height; with little or no curves, giving an angular look to the lowercase. Latin-alphabet versions of these typefaces were, historically, reserved for Bible printing, and were based on the ecclesiastical writing style.
This group consists of formal Blackletter designs with plain stem endings.
This group consists of formal Blackletter designs with serifs for stem endings.
The designs of this specific group have plain stem endings and have a pattern of hatching or shading in the stems.
The designs of this specific group have serifs and have hatching or shading in the stems.
Typefaces in this group have concave stem endings, long ascenders, and short descenders.
Arabic typefaces in this group have concave stem endings, long ascenders, short descenders, and two character twist.
Typefaces in this group have concave stem endings, long ascenders, short descenders, and modified lines (especially the base line).
Typefaces in this group have "Fish Tail" stem endings, long ascenders, and short descenders.
Typefaces in this group have "Fish Tail" stem endings, long ascenders, short descenders, and modified lines (especially the base line).
Typefaces in this group have "Fish Tail" stem endings, long ascenders, and one character twist.
Typefaces in this group have "Fish Tail" stem endings, a bold weight, and short ascenders and descenders in addition to their classic appearance.
Typefaces in this group have concave stem endings, and represent a modern version of designs classified under 3.1.11.
The designs of this subclass have characteristics of the Blackletters class but are less angular.
The designs of this specific group have plain stem endings.
The designs of this specific group have non-plain stem endings.
The designs of this specific group have no serifs and have a pattern of hatching or shading in the stems.
The designs of this specific group have serifs and have hatching or shading in the stems.
The designs of this subclass are characterized by their mixture of both Blackletters Formal style (3.1.0) and the Serifs style (4.1.1). The historical models for this design are from the late 1400's (Subiaco Monastery; Da Spira Brothers).
The designs of this specific group have plain stem endings.
The designs of this specific group have non-plain stem endings.
The designs of this specific group have no serifs and have a pattern of hatching or shading in the stems.
The designs of this specific group have serifs and have hatching or shading in the stems.
The designs of this subclass are generally based on medieval European Gothic cursive book hands.
Typefaces in this group have characteristics of an informal Blackletters style, but have plain stem endings.
Designs in this group have cursive Blackletter characteristics and serifs.
The designs of this specific group have plain stem endings and a pattern of hatching or shading in the stems.
The designs of this specific group have serifs and hatching or shading in the stems.
Designs in this group have a light (additional white space) appearance, with unjoined glyphs.
Typefaces in this class have stems with non-plain stem endings and are ones which are not associated with the other classes. Latin typefaces in this group have the traditional serifs; non-Latin typefaces may have any variety of functional or decorative stem endings.
NOTE 43 Although non-Latin typefaces in this class are grouped here because of their non-plain stem endings, it may generally be improper to refer them as being "serif" typefaces.
The typefaces in this category show characteristics of the typefaces created in Europe between the late 15th Century and the 17th Century.
The Latin-alphabet typeface designs in this category have a diagonal bar on the lowercase "e"; relatively monotone stem thickness; a sweeping tail on the uppercase "R"; and are based on the type styles of the early Venetian printers circa 1470-1490's.
These typefaces are generally based on the original typeface designs of printers such as Aldus Manutius and Claude Garamond. General characteristics of the Latin-alphabet typefaces are ascenders taller than the uppercase, and a horizontal bar on the lowercase "e".
Latin-alphabet typefaces in this category (based on 17th to 18th century Dutch designs) are characterized in part by a wedge shaped serif on the lowercase "t", spur serif on the capital "G", and a concave apex on the capital "A".
Typefaces in this group have characteristics of the typefaces that followed after W. Caslon (circa 1720) and before G. Bodoni (circa 1800).
Typefaces in this category are characterized by fine serifs and noticeable contrast in the weight of the thick and thin strokes. In Latin-alphabet typefaces, capital letters are nearly all the same width. These typefaces have characteristics in common with the early English designs from the early 1700's to the 1800's (e.g., Baskerville, Bulmer, Bell).
These typefaces, although based on the same models as above (European designs of the 1700's), are so significantly different that they cannot fit into the direct line category.
Arabic typefaces in this group have long ascenders and descenders, more cursive characteristics, and light strokes.
Typefaces in this group exhibit extreme contrast between the thick and thin strokes, as well as hairline serifs, vertical stress, and a condensed appearance.
These designs are based on, or exhibit characteristics in common with the typestyles of the Italian printer, Bodoni, or the French printer, Didot.
Typefaces in this group are based on the modern style type designs of W. Thorowgood.
This group does not have any clear recognizable historical model.
Typefaces in this group are of a mixed design in which a variety of design sources are recognizable.
The serifs of typefaces in this group are very small and pointed and have small bracketing.
Typefaces in this group are based on the lettering styles of American sign painters of the early 20th Century.
Obvious characteristics of Latin-alphabet typefaces of this group are large x-height, short ascenders and descenders. The general characteristics are that they were designed for applications where legibility is a major consideration. They may be based on a variety of historical designs.
These designs were originally intended to be used for newspapers and were mostly based on previous typeface models. Some designs, however, were not based on historical models, but were developed to address specific technical printing problems. In Latin-alphabet typefaces of this group, the rounded letters such as "c", "e", "o" are based on traditional rounded forms.
The traditionally rounded parts of the glyphs in this group are based on a super-elliptical (squared-off ellipse) design.
The serifs are relatively heavy and may or may not be bracketed.
The designs of this group are characterized by serifs that are approximately the same weight (thickness) as the stems, with no fillets or brackets connecting the stems and serifs.
The designs of this specific group are characterized by serifs that are much heavier than traditional serifs, but less than the weight of the stems. The serifs have brackets connecting to the stems.
The designs of this specific group are characterized by serifs that are thicker than the stems, and can have brackets between the stems and serifs.
The distinguishing features of this group are small, stubby serifs and relatively bold stems.
Typefaces in this group consist of designs that were originally intended for typewriters or were based on monospaced typewriter styles.
The typefaces in this group are based on the glyphs produced by a dot matrix output device.
These designs are characterized by serifs that have angled fillets, giving the appearance of triangular shaded serifs.
The stems of the typefaces in this group are solid.
The stems of the typefaces in this group have an interior line which evokes the look of lettering incised in stone or wood.
Latin-typefaces in this group are based upon the designs of the copper-plate engravers.
Typefaces in this group have bifurcated or barbed serifs.
The main characteristic of this group is very small and pointed serifs, with small fillets. In alphabetic typefaces in this group, the letters are generally all uppercase.
The typefaces in this group have ornaments and styling derived from, or influenced by the Art Nouveau movement of the late 1800's and the early 1900's. They are often characterized by irregular organic forms, twining fronds, sinuous curves, etc.
The stems of typefaces in this group are solid.
The typefaces in this group have ornaments and styling derived from Art Nouveau styles; the shapes are outlined by contour lines of a uniform weight.
The primary characteristics of these faces are that they give the appearance of faces associated with computer character recognition styles or LED displays.
The typefaces in this group are based on designs created to be machine readable.
Characters are segmented and composed of straight lines, such as those in LED displays.
Any typeface that has serifs and does not fit into any of the previous categories may be in this group.
These typefaces have thick vertical strokes and thin horizontal strokes. There is a noticeable wedge shape ending on the right end of the horizontal strokes.
The features of the stem endings of these typefaces are relatively smooth and rounded. The size difference between the Kana and Kanji is larger than the difference in New Style (4.12.2). The counters are relatively small.
The features of the stem endings are relatively sharp and angular. The size of the Kana is smaller than that of the Kanji, but less so than in the Old Style (4.12.1). The counters are relatively large.
This class is for any Mincho typeface that does not fall into the New Style or Old Style group.
Typefaces in this class have plain stem endings, and are not in the Uncials, Inscriptionals, Blackletters, or Ornamentals classes.
This subclass contains designs based on the earliest of the Latin-alphabet sans serif printing typefaces (circa 1815).
The Latin-alphabet designs of this group are based on the early sans serif designs, and are characterized by a two story lowercase "a"; and may have a spur serif on the uppercase "G".
The Latin-alphabet designs of this specific group are based on early sans serif designs, but have been modernized. They are characterized by having a two story lowercase "a" and a one story lowercase "g"; and may have a spur serif on the uppercase "G".
Typefaces in this group are based on the monospaced designs used for typewriters.
Sans serif typefaces based on or inspired by classical Roman proportions for uppercase, and the less geometric quality of lowercase Humanist book hands.
Characteristics of Latin-alphabet typefaces in this group include stems with subtle stress variation, uppercase letters with classic Roman Inscriptional proportions and a two story lowercase "a".
Latin-alphabet typefaces in this group have distinct contrast between thick and thin strokes; a two story lowercase "a"; may or may not have the uppercase in the classic Roman Inscriptional proportions.
This group includes typefaces based on the monospaced designs used for typewriters.
These typeface designs have a noticeable variation in the stem thickness.
Type designs based on the characteristic style of broad-edge pen lettering.
Informal designs which do not adhere to classical proportions.
Typefaces in this group are based on the sans serif designs used for typewriters.
Arabic typefaces in this group have more curvature in the lower side of the horizontal strokes.
In Arabic typefaces in this specific group, some horizontal strokes are slightly angled below the baseline, a characteristic which adds aesthetic value to the script.
Designs in this subclass are based on the display typeface designs of the 1920's.
Extreme contrast, one stem is very bold, arms and bowls are very thin.
Lines or patterns have been added to the stems of glyphs in this group.
The stems of typefaces in this group consist of very thin strokes.
Typefaces in this group have the visual characteristics of the sub-class and have a slant.
Typefaces in this group have the visual characteristics of the class and subclass, but are outlined with a thin line rather than having solid stems.
Typefaces in this group have the visual characteristics of the subclass, but have stylistic distortions of the glyph images.
Typefaces in this specific group have the characteristics of the class and subclass, but do not fit into any of the previous specific groups.
The designs of typefaces in this group are based on geometric shapes, and are generally monotone.
Designs in this group have a monotone design, the round glyphs are based on a circle, and stem endings are flat. In some instances, the ascenders may be longer than the descenders.
Designs in this group have a monotone design and rounded stem endings. In some instances the ascenders may be longer than the descenders.
In Latin-alphabet designs in this group, the shape of all traditionally rounded letters, such as "o", "c", and "e" are based on the super-ellipse (a squared off ellipse).
Designs in this group have a monotone design, but are less formal, may have curves in the stems, and do not appear as structured.
The typefaces in this group are sans serif, have a geometric appearance, and are based on the monospaced designs used for typewriters.
Typefaces in this group have heavy near-monotone stems.
Typefaces in this group have very heavy stems with some variation between the thick and thin stems.
Typefaces in this group have very heavy stems with significant variation between the thick and thin strokes.
Typefaces in this group have more rounded shapes with pointed stem endings.
Typefaces in this group represent sans serif geometric designs which have an extra light (additional white space) appearance.
Typefaces in this specific group have the characteristics of the class and subclass, but do not fit into any of the previous specific groups.
Typefaces in this class are those associated with early computerized printing, optical character recognition (OCR), or LED displays.
Typefaces in this group are based on designs originally intended to be machine readable.
The glyphs of typefaces in this group are segmented and composed of straight lines, such as those used for LED displays.
Typefaces in this group have stems at right angles to each other, rather than having curved strokes.
Typefaces in this group are lighter, having straight lines against curves.
The typefaces in this subclass have ornaments and styling derived from, or influenced by the Art Nouveau movement of the late 1800's and the early 1900's. They are characterized by having more sinuous curves and less formality than those in related subclasses.
Based on Art Nouveau designs, typefaces in this group have solid stems.
The typefaces in this group have shapes which are outlined by contour lines of a uniform weight.
Any typeface that is a sans serif and does not fit into any of the previous categories.
These typefaces are designed to resemble handwriting.
Typefaces in this subgroup have glyphs with joining strokes so they appear connected.
Typefaces in this group are based on a writing style characterized by extreme contrast between the thick and thin strokes.
A script with informal, cursive characteristics with thick and thin contrast.
Designs in this group have strokes of uniform thickness.
Typefaces in this specific group have the characteristics of the class and subclass, but do not fit into any of the previous specific groups.
Typefaces in this subclass have spaces between adjacent glyphs, making it a less cursive style.
Designs in this group are based on a writing style that is characterized by extreme contrast between the thick and thin parts of the glyphs.
Typefaces in this group are based on rapidly written scripts having significant contrast.
Designs in this group have strokes of uniform thickness.
Typefaces in this group are based on brush drawn lettering.
Typefaces of this group are characterized by having the appearance of handwriting, but are unjoined.
Designs in this group are based on the characteristics of lettering done with a broad-edge pen.
Designs in this group are based on the Ronde manuscript hand used in France in the 15th and 16th Centuries.
The characteristics of this style are that the strokes are brush like. The designs are not written with a pen and therefore the edges of the stems and strokes are not as sharp.
Because this style is based on a writing style using a soft brush, the stem thickness may vary.
Similar to 6.3.1, typefaces in this group are used mainly for children's books and textbooks. The design is simplified so each glyph's stroke formation and structure can easily be recognized by children to help them master the reading and writing of kanji characters.
Gyosho is a brush script style that is written with quick motions of the brush. Because of the speed, some adjacent strokes, which are normally separate, are connected by a thin stroke which represents a trail of ink left by the movement of the brush. The style is simplified, but not as much as that in the Sosho style (6.3.4).
Most of the strokes are smoothly connected. It is more simplified than Gyosho (6.3.3).
Any designs that do not fit in any of the above specific groups.
The Kana typefaces in this group are designed to harmonize with the Mincho style (4.12.0).
The features of the strokes are relatively smooth, counters are comparatively small, and the metric differences between glyphs are larger than that of the New Style (6.4.2).
The features of the strokes are relatively sharp and angular, counters are large, and the metric differences between glyphs are small.
Strokes (horizontal) are inclined slightly upward and to the right. The sharpness of the edges of the strokes is the same as if it had been produced by engraving in wood.
The strokes have such features as based on a writing style using a hard brush.
Typefaces in this class were meant for display rather than for text composition. They can be highly decorated or stylized.
The stems of the glyphs have a fine line or lines in the stem. The original faces were intended for display purposes. The lines that define the glyph shape may be of two different weights to create the illusion of shading or for a decorative effect.
Designs in this group have a single line in the stem and plain stem endings.
Designs in this group have a single line in the stem and non-plain stem endings.
The glyph shapes are outlined by contour lines of a uniform weight.
The typefaces in this group are outlined by contour lines of a uniform weight and have plain stem endings.
Typefaces in this group have non-plain stem endings.
Typefaces in this subclass have patterns such as floral or leaf, or the stems are composed of, or made up of, natural elements such as twigs, or animals.
Typefaces in this group use natural elements for decoration and do not have serifs.
Typefaces in this group use natural elements for decoration and have non-plain stem endings.
These typefaces have a three dimensional appearance created by means of shading and geometrical effects.
Typefaces in this group have the appearance of being three-dimensional and have plain stem endings.
Typefaces in this group have the appearance of being three-dimensional and have non-plain stem endings.
Double curved serifs are characteristic of this subclass; the glyphs may or may not be patterned.
Typefaces in this group have serifs in addition to be Tuscan ornamentation.
Designs in this subclass have the type of disjoint strokes which are characteristic of stencilled lettering.
Typefaces in this group have the stencil appearance and have plain stem endings.
Typefaces in this group have the stencil appearance and have non-plain stem endings.
The designs of this subclass are characterized by having a white image on a black background.
The designs of this group are reversed and have plain stem endings.
The designs of this group are reversed and have non-plain stem endings.
Typefaces in this group have a modern style and a decorated background.
The stems of the typefaces in this subclass have the hatching or shading patterns used by metal engravers.
The designs of this group have hatching patterns and plain stern endings.
The designs of this group have hatching patterns and non-plain stem endings.
This subclass is suitable for all designs which can not placed in one of the previous ornamental groups.
The designs of this group do not fit in the other subclasses and have plain stem endings.
The designs of this group do not fit in the other subclasses and have non-plain stem endings.
The designs of this group have handwritten appearance with some decoration.
(reserved for future assignment)
This annex provides general information about the font resource and processing environments in which ISO/IEC 9541 is used . See fihure B.1.
Figure B.1 - Font processing model
Font production is the process of designing glyph shapes, converting these shapes into a digital technology format (bit image, vector drawing orders, outline algorithm, etc.), defining the height, width, and escapement values of each individual glyph, recording descriptive and identifying information (for the glyphs and the font in general), and assembling this information into a format that can be used by a text processing system.
Font production is performed in diverse and sometimes changing environments. The font producer may be
The installation, storage and access of font information is fundamental for utilization of font resource information. Installation includes the process of accepting an interchange format of a font resource, possible conversion of the data before storing it in a font resource library. Storage contains the resource library from which font information is made available to a computer application. Access includes the process of locating the desired font information and making it available to another process in a form that is most suitable.
Two factors of critical importance in the storage and access of font information are: maintaining ownership of the data (glyph shapes are not generally shared and/or distributed), and understanding the need for broad distribution of some data (descriptive and metric information must be available to applications, sometimes broadly distributed, which generate or format documents).
When a font resource is generated, information may be contained in a single font file, but this may not be the form most useful to a text processing system. Processing systems or applications may require that a font resource be partitioned into subsets and/or reformatted. Each processing system component or application process can require different subsets of the font resource information.
The following are examples of the purposes for partitioning data differently:
Storage and access systems require appropriate subsets of the font resource information and font resource interchange formats which permit identification of individual properties without fixed ordering of properties. Some processes will require only descriptive information, whileothers will require metric information in addition to descriptive data. Presentation devices will require glyph shape and metric data, but access may be restricted by the owner of that data. Appropriate levels of security need to be employed by system or network service providers for each subset of font resource information.
The following describes in general, document-processing and text-processing tasks related to fonts describing concepts, but not implementation techniques or document structure. Implementations may include stand-alone programs, components of a larger program, or interwoven lines of code within multiple components. A document may contain text only, or diagrams with text annotation, or may be a composite containing text, graphics and pictures.
A text processing system includes hardware devices and software or firmware programs required to generate, modify, display, and/or print text. These components (programs and devices) maybe contained in a simple, independent system or may be included within a more complex document processing system and/or communication network. Text processing may be a primary function of a component (e.g., a text editing program) or it may be an auxiliary function of a component (e.g., part of a graphics editor, device service program, or resource management program).
A text processing system can include an electronic typewriter with cartridge fonts or may be a distributed network of sytems with shared data and variety of print and/or display devices.
The following are examples of text processing systems and the components which may utilize font resource information:
ISO/IEC 9541 defines font resource properties needed to support the most complex text processing systems. Simpler systems can use the same property definitions, though they require a smaller number of properties. ISO/IEC 9541 also provides for device and resolutionindependence; that is, all descriptive and metric information is defined independently of the device used to present the text, while multiple sets of glyph shapes at different resolutions may exist to support specific presentation devices. The remaining part of this clause discusses the application aspects of text processing and use of font resource information.
This task utilizes any text or graphic editing program, permitting the user to create or modify a data stream/file (temporary or permanent) containing text in a syntax consistent with a defined format. The text may include formatting commands or document markup that may be executed (immediately or later) by a formatting program. Editing may omit formatting commands for display or printing, encompassing only plain text and text entry, and text modification and data stream/file generation functions. Or, a WYSIWYG editor may be used, which is an integration of all text processing tasks defined in this clause. WYSIWYG editors provide immediate response to users, i.e. visual feedback on a display device.
Document formatting is a task which determines where information will appear on a presentation surface, with creation of a data stream/file (temporary or permanent) that contains document data along with formatting controls. The presentation surface may be a video display, a sheet of paper, or some other output medium. The formatting process uses information from a variety of sources (user, system defaults, document defaults, fonts), and produces an output data stream/file specific to the requirements of a particular device or generalized for presentation by any of several devices.
Document presentation is the task of transforming the formatted data stream/file into a visible form on a physical presentation device. This task involves the use of a hardware device and software for device service or control. The task of document presentation may be as simple asreceiving bit-map image data and generating the corresponding image on the presentation surface, or it may involve translating an encoded data stream/file, merging referenced information, and transforming the image information from a parametric form to a form required by the device. In either case, glyph image information contained in a font resource must be obtained, transformed, and positioned properly for presentation.
Tasks are not necessarily performed on a single or integrated system. A workstation used for editing may be remote or detached from the system where formatting will occur; a document for distribution and remote presentation may be formatted by the sender, who may not know what devices or resources will be available for presentation. Many different document content architectures, document interchange data streams, and device data streams may be involved, but all require, in addition, means of referencing fonts, positioning glyph images, and presenting the glyph images on the presentation surface.
Font referencing is the process of identifying or characterising a font resource. The referencing task affects editing, formatting and presentation in that it specifies the desired fonts in the document. Referencing permits the formatting process to acquire glyph metric information and for the presentation process to acquire glyph shape information. Referencing may include identification of a specific font by name, or provide sufficient descriptive information to permit identification of a suitable font or a substitute. An alternative font can be selected through descriptive information if the specified one is not available to the system which will format or present the document.
Glyph referencing is the process of identifying the glyphs of a font resource. The reference task affects the formatting and presentation processes, in that they must access the glyph metric and glyph shape information associated with each character code contained in the document being processed.
Characters used in text data may be specified as members of encoded graphic character sets, or as entity references in document markup, or by other document encoding techniques. The process of character association requires knowledge of the document encoding techniques, the font resource glyph identification technique, and the method of associating characters with glyph identifiers.
ISO/IEC 9541 defines a method of uniquely identifying all known glyphs, and of identifying useful collections of glyphs which are independent of any document encoding techniques. ISO/IEC 10036 defines a procedure for the registration of all known glyphs and glyph collections.
Glyph positioning is the process of determining where a given glyph is to appear on the presentation surface. This function is performed by the document formatting process, which is a generic name for the process that determines the position of text, graphic, and/or image objects on a document page, including line breaks and how text should flow around graphic orimage objects. The document formatting process makes use of font resource information together with user, system, and document layout information. Font resources provide only a portion of the information required for glyph positioning.
Glyphs may be positioned absolutely or relative to each other. That is, the formatting process may specify where each individual glyph is to be positioned or it may specify where the first glyph of a sequence of glyphs is to be positioned, leaving it to the presentation process to position successive glyphs in that sequence. In either case, the process must know each glyph's escapement value and dimensions and any other properties such as may be required for rotation, kerning, creating ligatures, etc. Font resource information should be provided in device and resolution-independent units of measure for maximum utility.
Glyph image presentation is the process of forming the glyph shape on the presentation surface. This process is performed by a hardware device (display or printer), supported by software and/or hardware processes which translate the glyph shape information from its interchange format to that required by the presentation device.
Properties are specified to represent some typical interlinear/intercharacter objects. Actual values are assigned or restricted to a property.
ILC-type-value: "Ruby" The name "Ruby" is just an example. Other names can be specified. ILC-font-size-value-type: "ABS" or "RELATIVE" ILC-font-size-value: any size ILC-typeface-value: any typeface name ILC-rotation-value: 0 ILC-writing-direction-offset-value-type: "ABS" or "RELATIVE" ILC-writing-direction-offset-value: any size ILC-formatting-type-value: "HEAD" or "CENTER" or "JUSTIFICATION" ILC-line-progression-direction-offset-value-type: "ABS" or "RELATIVE" ILC-line-progression-direction-offset-value: any size
ILC-type-value: "Kendot" The name "Kendot" is just an example. Other names can be specified. ILC-font-size-value: any size ILC-typeface-value: any typeface name ILC-rotation-value: 0 ILC-formatting-type-value: "HEAD" or "CENTER" ILC-line-progression-direction-offset-value: any size
ILC-type-value: "Return-Mark" The name "Return-Mark" is just an example. Other names can be specified. ILC-font-size-value: any size ILC-typeface-value: any typeface name ILC-rotation-value: 0 ILC-writing-direction-offset-value-type: "ABS" or "RELATIVE" ILC-writing-direction-offset-value: any size ILC-line-progression-direction-offset-value-type: "ABS" or "RELATIVE" ILC-line-progression-direction-offset-value: any size
ILC-type-value: "Added-Characters" The name "Added-Characters" is just an example. Other names can be specified. ILC-font-size-value: any size ILC-typeface-value: any typeface name ILC-rotation-value: 0 ILC-writing-direction-offset-value-type: "ABS" or "RELATIVE" ILC-writing-direction-offset-value: any size ILC-line-progression-direction-offset-value-type: "ABS" or "RELATIVE" ILC-line-progression-direction-offset-value: any size
The following figures illustrate some typical rendered images of Ruby objects.
![]() | ![]() |
![]() | ![]() |
|
![]() | ![]() | ![]() | ![]() |
![]() | ![]() |
|
![]() | ![]() |
![]() |
![]() |
![]() | ![]() | ![]() |
![]() | ![]() |