https://bugs.documentfoundation.org/show_bug.cgi?id=158099

--- Comment #4 from ajlittoz <[email protected]> ---
IMHO, the problem comes from too simplistic a number recognition.

In Arabic/Persian, text is written RTL but numbers are written the same as in
European scripts, i.e. most significant digit at left, least significant at
right. Then numbers look LTR.

A number can contain a decimal separator. Depending on country, this separator
is either U+002E FULL STOP or U+002C COMMA. Both these characters are
"direction neutral". This means that when met in a sequence of characters they
won't change the "directionality" nor create a break. Then any sequence of
digits, full stops and commas constitutes a block which will be inserted as is
in the output flow.

After the multi-level list item number has been generated, it is passed to the
layout engine and its "multi-part" semantics is lost. Though it is an invalid
number dues to the presence of several decimal separators, the text engine only
sees a "homogeneous" sequence and will lay it out as a whole instead of
considering each component (level) in its turn and each decimal as a word
separator (which would also change the position of the separator).

Presently, list styles don't allow to change the intermediate level separator
which is hard-wired to U+002E FULL STOP. There is no workaround.

A possible ugly fix would be to scan the numeric string for multiple decimal
separators. If more than one is found, the string is split; then numbers and
separators are individually sent to output.

However this does not solve the case of a level-2 numbering of the form 2.1
without final dot.

Part of the solution goes through improving list style configuration by
allowing more control on the intermediate separator. A probably elegant
solution not involving scanning the item number could be to add U+200C ZERO
WIDTH NON-JOINER before and after the intermediate separator (and perhaps also
before and after separators). Should this be done automatically or left under
user control (for more fancy formatting)?

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to