notofonts / latin-greek-cyrillic

Noto Latin, Greek, Cyrillic
SIL Open Font License 1.1
43 stars 8 forks source link

"Combining comma above right" at wrong position #33

Open vk-github18 opened 4 years ago

vk-github18 commented 4 years ago

Defect Report

Title

"Combining comma above right" character at wrong position"

Font

NotoMono-Regular.ttf (correct) NotoMono-Bold.ttf NotoSans-BoldItalic.ttf NotoSans-Bold.ttf NotoSans-Italic.ttf NotoSans-Regular.ttf

Where the font came from, and when

Site: https://github.com/googlefonts/noto-fonts/tree/master/hinted/ttf Date: 2020-10-05

Font Version

NotoMono-Regular.ttf (correct) 2.004; ttfautohint (v1.8.2) NotoMono-Bold.ttf 2.004; ttfautohint (v1.8.2) NotoSans-BoldItalic.ttf 2.003; ttfautohint (v1.8.2) NotoSans-Bold.ttf 2.003; ttfautohint (v1.8.2) NotoSans-Italic.ttf 2.003; ttfautohint (v1.8.2) NotoSans-Regular.ttf 2.003; ttfautohint (v1.8.2)

OS name and version

Ubuntu 20.04.1 LTS

Application name and version

hb-view (HarfBuzz) 2.6.8 Available shapers: graphite2,ot,fallback

Issue

There is not enough space after COMBINING COMMA ABOVE RIGHT so it is overlapping with the next letter

  1. Steps to reproduce

FONTS="NotoSans-BoldItalic.ttf NotoSans-Bold.ttf NotoSans-Italic.ttf NotoSans-Regular.ttf NotoMono-Bold.ttf NotoSansMono-Bold.ttf NotoMono-Regular.ttf NotoSansMono-Regular.ttf"

for f in $FONTS do printf "$f\n">x cat combining_comma_above_right.txt >> x hb-view -o combining_comma_aboveright${f%.*}.png $f <x rm x done

  1. Observed results COMBINING COMMA ABOVE RIGHT overlaps with next letter combining_comma_above_right_NotoSans-Regular combining_comma_above_right_NotoSans-Italic combining_comma_above_right_NotoSans-BoldItalic combining_comma_above_right_NotoSans-Bold combining_comma_above_right_NotoMono-Bold

  2. Expected results

COMBINING COMMA ABOVE RIGHT does not overlap with next letter combining_comma_above_right_NotoMono-Regular

  1. Additional information

See https://github.com/googlefonts/noto-fonts/issues/1478 where the problem was solved for letters small k and t

The tested sequences are used in the following specification:

DIN SPEC 91379: Characters in Unicode for the electronic processing of names and dataexchange in Europe; with digital attachment

https://www.xoev.de/downloads-2316#StringLatin

https://www.din.de/de/wdc-beuth:din21:301228458

Character data

C̕k 0043 0315 LATIN CAPITAL LETTER C WITH COMBINING COMMA ABOVE RIGHT K̕k 004B 0315 LATIN CAPITAL LETTER K WITH COMBINING COMMA ABOVE RIGHT P̕k 0050 0315 LATIN CAPITAL LETTER P WITH COMBINING COMMA ABOVE RIGHT c̕k 0063 0315 LATIN SMALL LETTER C WITH COMBINING COMMA ABOVE RIGHT p̕k 0070 0315 LATIN SMALL LETTER P WITH COMBINING COMMA ABOVE RIGHT Č̕k 010C 0315 LATIN CAPITAL LETTER C WITH CARON WITH COMBINING COMMA ABOVE RIGHT č̕k 010D 0315 LATIN SMALL LETTER C WITH CARON WITH COMBINING COMMA ABOVE RIGHT

combining_comma_above_right.txt

nizarsq commented 4 years ago

@vk-github18 I can see there is an issue with U+0315 but I don't think it is a spacing issue, I believe it is a positioning issue; U+031 should set on the top of precedent character not between characters . This behaviour noticed on Serif fonts as well. @marekjez86 for opinion.

Character data : C̕k K̕k P̕k c̕k p̕k Č̕k č̕k

Screen Shot 2020-10-06 at 9 49 54 AM
vk-github18 commented 3 years ago

@nizarsq and @marekjez86 I agree, as nonspacing mark U+0315 should not consume extra horizontal space, and be positioned right above the base letter.

See also the Unicode standard: http://www.unicode.org/versions/Unicode13.0.0/ch03.pdf#G30602

D53 Nonspacing mark ... It generally does not consume space along the visual baseline in and of itself. ...

vk-github18 commented 3 years ago

Example for rendering (Featherpad/Linux) image

vk-github18 commented 3 years ago

Two more sequences: T̕K t̕k Noto Sans Regular: image

vk-github18 commented 3 years ago

Example for rendering with Roboto (Windows10/Editor) image

vk-github18 commented 3 years ago

I would like to add some background info. When this bug is closed, Noto Sans will IMHO be one of the few fonts that can display the characters and sequences of DIN 91379 correctly.

[DIN 91379:2022-08: Characters and defined character sequences in Unicode for the electronic processing of names and data exchange in Europe, with CD-ROM

DIN 91379 (Wikipedia) DIN 91379:2022-08 (chargeable, in German)

Letters and sequences defined in DIN 91379:

List of characters and sequences of DIN 91379 latin_letters_all_en.txt latin_list_all_en.txt

DIN SPEC 91379: Characters in Unicode for the electronic processing of names and dataexchange in Europe; with digital attachment

String.Latin+ 1.2 (zip, free download, in German) DIN SPEC 91379 (free download after registration, in German)