TITLE: | PDAM3 to ISO/IEC 9541-1: Multilingual extensions to font resource architecture |
SOURCE: | SC34/WG2 |
PROJECT: | JTC1.34.27.01.03 |
PROJECT EDITOR: | Y. Komachi |
STATUS: | PDAM text |
ACTION: | |
DATE: | 1999-04-19 |
DISTRIBUTION: | SC34 and Liaisons |
REFER TO: | SC34 N0019 and N0059 |
REPLY TO: |
ISO/IEC 9541-1 and its amendment specify Ruby and Generalized Ken-dot. Although these specifications helps users and application developers implement their rendering system which can support the processing for these two specific objects, it is insufficient for the support for other objects which is positioned between lines or characters (which are called interlinear/intercharacter objects).
This amendment specifies additional properties for the interlinear/intercharacter object for multilingual use. By using this object, you can describe any object which is positioned between lines or characters. Actual objects are derived from this generic object as shown in Annex C for example.
Add the following definitions:
3.31 interlinear object: Objects between lines or objects inserted between lines.
3.32 intercharacter object: Objects between characters in the writing direction.
3.33 parent object: Object with which the interlinear/intercharacter object is associated. This term is used when referring to relation between interlinear/intercharacter object and the object with which that interlinear/intercharacter object is associated.
3.34 child object: Interlinear/intercharacter object. This term is used when referring to relation between interlinear/intercharacter object and the object with which that interlinear/intercharacter object is associated.
Add the following properties:
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 a interlinear/intercharacter object.
Note that these are primitive properties to locate interlinear/intercharacter object. There may be some GUI or convention for specification which can produce these 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 You have to specify the following items for recognition of interlinear/intercharacter object other than properties described here.
This document doesn't provide any particular way to specify these items above. For example, you may use customized SGML/XML tags to do that.
NOTE 2 You can associate multiple interlinear/intercharacter objects with the same character(s).
NOTE 3 ILC-type-property (type) specifies the type of a interlinear/intercharacter object.
NOTE 4 ILC-font-size-property (font size) specifies an absolute or relative value to font size of character(s) of the parent object with which the interlinear/intercharacter object is associated.
NOTE 5 ILC-typeface-property (typeface name) specifies typeface name.
NOTE 6 ILC-rotation-property (rotation) specifies an angle measured counterclockwise from the parent object's writing direction to the child object's writing direction. Probably interlinear objects have 0 degree for this property and intercharacter objects have 270 degree (when the main text is horizontally flowed) or 90 degree (when the main text is vertically flowed).
NOTE 7 ILC-writing-direction-offset-property (offset in writing direction) specifies an absolute or relative value to font size of character(s) with which the interlinear object is associated.
This value is the offset between the positioning point of child object and parent object. The writing direction is the one of the parent object, not the one of child object. That means this value is measured from the viewpoint of 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, the property for position in writing direction will be ignored even if there is one.
NOTE 9 ILC-line-progression-direction-offset-property (offset in line progression direction) specifies an absolute or relative value to font size of character(s) with which the interlinear object is associated.
This value is the offset between the baseline of character(s) with which interlinear object is associated and the baseline of interlinear object. The line progression direction is the one of the parent object, not the one of child object. That means this value is measured from the viewpoint of parent object's coordinate system.
Figure1. Concept of offsets - Writing direction of the parent object is left-to-right, rotation is 0 degree
Figure2. Concept of offsets - Writing direction of the parent object is left-to-right, rotation is 270 degree
Figure3. Concept of offsets - Writing direction of the parent object is top-to-bottom, rotation is 0 degree
Add the following annexes:
Properties for interlinear/intercharacter objects are selected to represent particular objects. The following are the examples to show you which properties are selected and used to particular objects. In some cases, specific values are assigned to a property. In other cases, values are restricted to some values.
ILC-type-value: "Ruby"
The name "Ruby" is just an example in this document. You can use any name.
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: "Generalized-Ken-dot"
The name "Ken-dot" is just an example in this document. You can use any name.
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 in this document. You can use any name.
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 in this document. You can use any name.
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 followings are samples of formatting pattern of interlinear/intercharacter objects.
Figure 4. Formatting information in writing direction is "HEAD"
FIgure 5. Formatting information in writing direction is "CENTER"
Figure 6. Formatting information in writing direction is "JUSTIFICATION"
FIgure 7. Position in writing direction is specified
Figure 8. Formatting information in writing direction is "CENTER"
Figure 9. Pattern of return mark
Figure 10. Pattern of added characters