2.7.16 DopTypography

The DopTypography structure contains East Asian language typography settings.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

A

B

C

D

E

F

G

reserved

cchFollowingPunct

cchLeadingPunct

rgxchFPunct (202 bytes)

...

...

...

rgxchLPunct (102 bytes)

...

...

...

A - fKerningPunct (1 bit):  Specifies whether to kern punctuation characters as specified in [ECMA-376] Part 4, Section 2.15.1.60 noPunctuationKerning, where the meaning of noPunctuationKerning is the opposite of fKerningPunct.

B - iJustification (2 bits):  Specifies the character-level whitespace compression as specified in [ECMA-376] Part 4, Section 2.15.1.18 characterSpacingControl. This value MUST be one of the following.

Value

Meaning

0 (default)

doNotCompress

1

compressPunctuation

2

compressPunctuationAndJapaneseKana

C - iLevelOfKinsoku (2 bits):  This value MAY<198> specify which set of line breaking rules to use for East Asian characters.  This value MUST be one of the following.

Value

Meaning

0 (default)

Chinese (Simplified)

  1. Cannot start a line:
    !%),.:;>?]}¢¨°·ˇˉ―‖’"…‰′″›℃∶、。〃〉》」』】〕〗〞︶︺︾﹀﹄﹚﹜﹞!"%'),.:;?]`|}~¢

  2. Cannot end a line:$([{£¥·‘"〈《「『【〔〖〝﹙﹛﹝$(.[{£¥

Chinese (Traditional)

  1. Cannot start a line:
    !),.:;?]}¢·–—’"•‥…‧′╴、。〉》」』】〕〞︰︱︳︴︶︸︺︼︾﹀﹂﹄﹏﹐﹑﹒﹔﹕﹖﹗﹚﹜﹞!),.:;?]|}、

  2. Cannot end a line:
    ([{£¥‘"‵〈《「『【〔〝︵︷︹︻︽︿﹁﹃﹙﹛﹝({

Japanese

  1. Cannot start a line:
    !%),.:;?]}¢°’"‰′″℃、。々〉》」』】〕゛゜ゝゞ・ヽヾ!%),.:;?]}。」、・゙゚¢

  2. Cannot end a line:
    $([\{£¥‘"〈《「『【〔$([{「£¥

Korean

  1. Cannot start a line:
    !%),.:;?]}¢°’"′″℃〉》」』】〕!%),.:;?]}¢

  2. Cannot end a line:
    $([\{£¥‘"〈《「『【〔$([{£¥₩

1

Identical to 0 for all but Japanese where the following is used:

Cannot start a line:
!%),.:;?]}¢°’"‰′″℃、。々〉》」』】〕ぁぃぅぇぉっゃゅょゎ゛゜ゝゞァィゥェォッャュョヮヵヶ・ーヽヾ!%),.:;?]}。」、・ァィゥェォャュョッー゙゚¢

Cannot end a line:
$([\{£¥‘"〈《「『【〔$([{「£¥

2

The characters that are forbidden to be used for starting or ending a line are specified by rgxchFPunct and rgxchLPunct.

D - f2on1 (1 bit):  Specifies whether to print two pages per sheet, as specified in [ECMA-376] Part 4, Section 2.15.1.64 printTwoOnOne.

E - unused (1 bit):  This value is undefined and MUST be ignored.

F - iCustomKsu (3 bits): This value specifies for what language the characters in rgxchFPunct are kinsoku overrides<199>. All other languages act according to the description of iLevelOfKinsoku with a value of 0. This MUST be one of the following values.

Value

Language identifier

0 (default)

No language

1

Japanese

2

Chinese (Simplified)

3

Korean

4

Chinese (Traditional)

G - fJapaneseUseLevel2 (1 bit):  This value specifies that line breaking rules for Japanese acts according to the description of iLevelOfKinsoku with a value of 1<200>. The default value is 0.

reserved (5 bits):  This value MUST be 0, and MUST be ignored.

cchFollowingPunct (2 bytes): A signed integer that specifies the number of characters in rgxchFPunct. This MUST be a value between 0x0000 and 0x0064 inclusive. By default, this value is 0x0000.

cchLeadingPunct (2 bytes): A signed integer that specifies the number of characters in rgxchLPunct. This MUST be a value between 0x0000 and 0x0032, inclusive. By default, this value is 0x0000.

rgxchFPunct (202 bytes):  An array of cchFollowingPunct Unicode characters that cannot start a line if the language of the text matches the language specified in iCustomKsu. If iCustomKsu has a value of 0, this array has no effect on the document.

rgxchLPunct (102 bytes): An array of cchLeadingPunct Unicode characters that cannot end a line if the language of the text matches the language specified in iCustomKsu. If iCustomKsu has a value of 0, this array has no effect on the document.