Description
Opening a new issue to track a follow up discussion of a previous one.
In #6950 (comment), @MurakamiShinyu wrote:
The
text-spacing: normal
definition is now:
normal
-- Specifies the baseline behavior, equivalent tospace-start trim-end trim-adjacent ideograph-alpha ideograph-numeric
.I am a little confused about the "baseline behavior.
Before ideograph-alpha and ideograph-numeric were added to
normal
definition, the meaning was clear to me, that is, the each value included in the definition ofnormal
is the default value, so when we specify the text-spacing property partially changed fromnormal
we can specify just changed values and omit values that are included in thenormal
definition.
For example, when justtext-spacing: trim-start
is specified, it implies omitted normal values, trim-end and trim-adjacent. i.e.,text-spacing: trim-start
was equivalent totext-spacing: trim-start trim-end trim-adjacent
.However, after ideograph-alpha and ideograph-numeric were added to
normal
definition, it is no longer that simple. Istext-spacing: trim-start
equivalent totext-spacing: trim-start trim-end trim-adjacent ideograph-alpha ideograph-numeric
? That will be useful when we want to change only trim-start/space-start/space-first behavior and keep othernormal
behavior, but if so, how do we change just ideograph-alpha/ideograph-numeric behavior fromnormal
?Then I decided to interpret it as follows:
text-spacing: trim-start
is still equivalent totext-spacing: trim-start trim-end trim-adjacent
. The omitted default *-start/first, *-end, and *-adjacent are kept but ideograph-alpha and ideograph-numeric are turned off.- ideograph-alpha and ideograph-numeric are turned on only when these values are explicitly specified, or
normal
(orauto
, probably) is specified.(I implemented it in Vivliostyle.js as per this interpretation. vivliostyle/vivliostyle.js#1080)
However this spec is not very clear and not very useful.
It would be better adding a new keyword,
no-interscript-space
, to turn off the interscript spacing.The
ideograph-alpha || ideograph-numeric
part of the value definition becomes[no-interscript-space | ideograph-alpha || ideograph-numeric]
and we can specify only this part to the text-spacing property when keeping other default (normal) behavior.
He then followed up with:
Or maybe it would be better to change the
ideograph-alpha || ideograph-numeric
value toideograph-alpha <number> || ideograph-numeric <number>
where the<number>
represents the space width as a multiple of the fullwidth advance measure. Thenormal
definition would containideograph-alpha 0.125 ideograph-numeric 0.125
. Examples:
text-spacing: ideograph-alpha 0 ideograph-numeric 0
turns off the ideograph-alpha/ideograph-numeric spacing and keeps othernormal
behavior.text-spacing: trim-start
only changes the *-start/first part ofnormal
behavior. i.e, is equivalent totext-spacing: trim-start trim-end trim-adjacent ideograph-alpha 0.125 ideograph-numeric 0.125
.