OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: For discussion of OFFICE-4030 and OFFICE-3791

Hi all,

I have put Miklos Vajna, proposal owner of OFFICE-4030, in CC.

In regard to OFFICE-4030 Bottom to top, left to right writing direction:
For the intended purpose it is not enough, to describe the writing-mode as "bt-lr". You need to define the glyph orientation in addition.

Add the values from https://www.w3.org/TR/2001/REC-xsl-20011015/sliceA.html#writing-mode-add, at least the value bt-lr and tb-lr, and in addition specify an equivalent to https://www.w3.org/TR/2001/REC-xsl-20011015/slice7.html#writing-mode
7.27.2 "glyph-orientation-horizontal"
7.27.3 "glyph-orientation-vertical"

Extend the current values of writing-mode with own variants, which include glyph orientation. Read an outline below.

Use CSS and SVG properties directly. https://www.w3.org/TR/css-writing-modes-3/.
See also https://svgwg.org/svg2-draft/text.html#WritingModeProperty
It will use 'writing-mode', 'direction', and 'text-orientation'. It will be different from CSS2 and SVG1. It is complex. I think it is not really suitable, but decide yourself.

ODF1.3, part3, 20.404 style:writing-mode
A writing-mode value consists of a first part for inline progression, a second part for block progression and an optional third part for glyph orientation. The parts are connected by an hyphen.

A progression is either a horizontal direction or a vertical direction. A horizontal direction is one of
lr: from left to right
rl: from right to left
A vertical direction is one of
tb: from top to bottom
bt: from bottom to top
A writing-mode value combines a horizontal progression with a vertical progression.

If a glyph orientation part is missing, a linguistic (typographic?) glyph orientation is used. That means, that rotation of a glyph is determined by the script used for the language of the text. Consumers should consider the rules and algorithms of the Unicode standard. [e.g. http://www.unicode.org/reports/tr41/ Common References for Unicode Standard Annexes, [UAX50], [UTS37]].

If a glyph orientation part is given, a geometric glyph orientation is used. That means, that all glyphs are rotated as specified, no glyph has a special rule. Possible glyph orientations are
turn0: No glyph is rotated
turn90: All glyphs are rotated 90degree clockwise
turn180: All glyphs are rotated 180degree
turn270: All glyphs are rotated 90degree counter-clockwise.
The angles are relative to the glyph as given in the Unicode charts.

Default value for writing-mode is "lr-tb".

Consumers shall at least support one of the writing-mode values "lr-tb", "rl-tb" and "tb-rl".

The following shorthands are allowed: "lr" for "lr-tb", "rl" for "rl-tb" and "tb" for "tb-rl".

[The value 'page' is missing here and needs to be added.]

[For defining of 'inline progression', 'block progression' and 'glyph orientation' see http://unicode.org/notes/tn22/. That has a link to a pdf-file http://unicode.org/notes/tn22/RobustVerticalLayout.pdf. In that pdf, section 'Analyzing Text Flow'. Bibliography: Etemad, Elika J., Robust Vertical Text Layout. 27th Internationalization and Unicode Conference. Berlin, Germany, April 2005 In CSS3 it is named 'inline base direction' and 'block flow direction' respectively.]

"lr-tb"     Latin, Greek
"rl-tb"     Arabic, Hebrew
"tb-rl"     Japanese    OOXML "eaVert"
"tb-lr"     Mongolian   OOXML "mongolianVert"
"bt-lr"     Batak

"tb-rl-turn90"      OOXML "vert"
"bt-lr-turn270"     OOXML "vert270"
"tb-lr-turn0"       OOXML "wordArtVert"
"tb-rl-turn0"       OOXML "wordArtVertRtl",

"tb-lr-turn0" and "tb-rl-turn0" would be similar to ODF 1.3,part 3, 20.263 style:direction, value "ttb", but not restricted to table-cell-properties and chart-properties.

[some Examples are from https://www.omniglot.com/writing/direction.htm]
[OOXML values are from ST_TextVerticalType in section, ISO/IEC 29500-1:2016]

Kind regards

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]