ISO/IEC JTC 1/SC34/WG2 N04

ISO/IEC JTC 1/SC34/WG2

Information Technology --
Document Description and Processing Languages
-- Information Presentation

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:


PDAM3 to ISO/IEC 9541-1: Multilingual extensions to font resource architecture

Introduction

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.

Clause 3

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.

Clause 8

Add the following properties:

8.10 Interlinear/intercharacter Object Properties (ILCOBJ)

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

Annexes

Add the following annexes:

Annex C. Examples of the use of generic interlinear object model (Informative)

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.

C.1 Ruby

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

C.2 Generalized Ken-dot

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

C.3 Return Mark

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

C.4 Added Characters

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

Annex D. Samples of Formatting Pattern of interlinear/intercharacter objects (Informative)

D.1 Ruby

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

D.2 Generalized Ken-dot

Formatting type in writing direction is "HEAD"

{short description of image} {short description of image}

Figure 8. Formatting information in writing direction is "CENTER"

D.3 Return Mark & Added Characters

{short description of image}

{short description of image} {short description of image}

Figure 9. Pattern of return mark

{short description of image}

{short description of image}

Figure 10. Pattern of added characters