Bug 52577 - Right-hand part of vowel signs disappear when reordering numeric diacritics in Graphite font
Summary: Right-hand part of vowel signs disappear when reordering numeric diacritics i...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
3.6.3.2 release
Hardware: All All
: high major
Assignee: ⁨خالد حسني⁩
URL:
Whiteboard: target:24.2.0 target:7.6.0.0.beta2
Keywords:
Depends on:
Blocks: Font-Rendering
  Show dependency treegraph
 
Reported: 2012-07-27 09:45 UTC by Shriramana Sharma
Modified: 2023-07-06 14:05 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments
Test material to reproduce and test the bug (63.20 KB, application/x-zip-compressed)
2012-07-27 09:45 UTC, Shriramana Sharma
Details
Results of testing on LibO 4.2 release (63.22 KB, application/zip)
2014-02-03 04:48 UTC, Shriramana Sharma
Details
current rendering in 7.2.2.2 (4.82 KB, application/pdf)
2021-11-03 06:32 UTC, martin_hosken
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Shriramana Sharma 2012-07-27 09:45:54 UTC
Created attachment 64769 [details]
Test material to reproduce and test the bug

Please find attached a ZIP file with requisite test material. I've adapted the Lohit Tamil font (https://fedorahosted.org/lohit/) to Graphite under the name Krishna Tamil. (Note: I removed all OT tables.)

I've included the plain TTF without Graphite tables, the GDL and the compiled Gr-Enabled TTF. Please install the Gr-Enabled font and open the ODT. 

The sample text is very simple.

When transliterating other Indic scripts into Tamil, since Tamil does not have the full series of class consonants KA KHA GA GHA NGA etc but only has the first and last members, KA and NGA, one uses 1 2 3 and 4 in either superscript or subscript form for the missing letters. (Actually 1 is rarely seen but is an optional choice sometimes required.) The Unicode Standard recommends the usage of (00B9 and) 00B2 00B3 2074 (and 2081-2084) for the same.

The traditional placement of the numerical diacritic is as close to the consonant as possible, but in logical order it has to follow the full CONSONANT + VOWEL_SIGN combination. This means reordering in the cases where there is a vowel sign (or part thereof) to the right of the consonant.

I find that in the case of 00B9 00B2 and 00B3, after reordering, the right hand side vowel sign has been gobbled up. This problem is not seen for the 20xx characters.

For comparison I've included the output of XeTeX (which uses Gr1) which shows the correct rendering.

It is also not a Gr2 bug, since gr2fonttest from graphite 1.1.3 outputs:

<quote>
$ gr2fonttest -codes font-grenabled.ttf 0b95 0bbe 00b9
Text codes
 b95     bbe      b9
pos  gid   attach            x       y  ins bw    chars         Unicode
00    65  -1@0,0           0.0     0.0   1  30    0   0     b95     b95
01   230  -1@0,0           7.7     0.0   1  30    2   2      b9      b9
02    88  -1@0,0          11.3     0.0   1  30    1   1     bbe     bbe
Advance width =   17.6

Char    Unicode Before  After
0       0B95    0       0
1       0BBE    2       2
2       00B9    1       1
</quote>

showing that the reordering has been done and the second glyph should display.

Bug reproducible on LibO 3.5.3 release version on Kubuntu Precise, 3.5.4 on Win XP, and yesterday's daily* of 3.7.0 on Win XP.

* = http://dev-builds.libreoffice.org/daily/Win-x86@6/master/2012-07-26_02.09.47/master~2012-07-26_02.09.47_LibO-Dev_3.7.0.0.alpha0_Win_x86_install_en-US.msi
Comment 1 Joel Madero 2013-01-15 17:53:03 UTC
Confirmed, text below identical to what I put on fdo#52575

Changing:

Version - 3.6.3.2, I have confirmed that the problem exists at least to this point, probably indefinitely into the past

New (Confirmed)
Major (prevents entire languages from being used correctly in LibO)
High (default for major)

This bug really makes it so entire populations cannot use LibreOffice efficiently or effectively. Hopefully someone tackles this one

Related: https://bugs.freedesktop.org/show_bug.cgi?id=48303

I closed that one but maybe it should be reopened - need independent confirmation
Comment 2 Shriramana Sharma 2013-10-13 07:49:54 UTC
Bug persists as of LibO 4.1.1.2 installed from DEBs on Kubuntu Precise.
Comment 3 Shriramana Sharma 2014-02-03 04:48:34 UTC
Created attachment 93257 [details]
Results of testing on LibO 4.2 release

I tested this bug with the same material on the recent LibO 4.2 release. Previously the right-hand vowel sign was disappearing. Now the reordering is simply not happening in the case of sup-1, 2 and 3 whereas it is happening in the case of the other diacritics. Also in the case of sup-1, 2 and 3 there is some additional spacing seen when there is no additional vowel sign.

Since the behaviour has changed, should I change the bug summary?
Comment 4 Joel Madero 2015-05-02 15:41:05 UTC Comment hidden (obsolete)
Comment 5 QA Administrators 2016-09-20 09:36:54 UTC Comment hidden (obsolete)
Comment 6 eisa01 2019-11-03 15:58:08 UTC
This is still present

Version: 6.4.0.0.alpha1+
Build ID: 80109586e6cb6d3e2e0a53a9079c3125ec9b8368
CPU threads: 4; OS: Mac OS X 10.14.6; UI render: default; VCL: osx; 
Locale: en-US (en_US.UTF-8); UI-Language: en-US
Calc: threaded
Comment 7 QA Administrators 2021-11-03 04:31:10 UTC Comment hidden (obsolete)
Comment 8 martin_hosken 2021-11-03 06:32:34 UTC
Created attachment 176087 [details]
current rendering in 7.2.2.2
Comment 9 martin_hosken 2021-11-03 06:48:53 UTC
No change in 7.2.2.2 bug is still there.
Comment 10 ⁨خالد حسني⁩ 2023-07-06 07:57:56 UTC
The remaining issue is now how we classify the superscript/subscript digits. The superscript 1, 2, and 3 gets classified as Western text, so the Tamil text is split, while the others gets classified as CTL and no splitting happen.

This is most likely because they are in different Unicode blocks and for certain Unicode blocks we force them to be classified as Western text.
Comment 11 Commit Notification 2023-07-06 12:26:56 UTC
Khaled Hosny committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/f348425e0b9187f56370d9b76594872f935b4d8e

tdf#52577: Classify superscript numbers in Latin-1 block as ScriptType::WEAK

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 12 Commit Notification 2023-07-06 14:05:15 UTC
Khaled Hosny committed a patch related to this issue.
It has been pushed to "libreoffice-7-6":

https://git.libreoffice.org/core/commit/f62355a601e5f67b87e1061a10a4a612a9cdc839

tdf#52577: Classify superscript numbers in Latin-1 block as ScriptType::WEAK

It will be available in 7.6.0.0.beta2.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.