View Issue Details

IDProjectCategoryView StatusLast Update
0012475ScribusFontspublic2015-02-23 18:04
Reporterpaulmillar Assigned Tojghali  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Platformamd64OSDebian GNU/LinuxOS Versionunstable
Product Version1.4.4 
Target Version1.5.0Fixed in Version1.5.0svn 
Summary0012475: font spacing/kerning is wrong
DescriptionAt least for some fonts, the spacing between certain letters is wrong. I'm using the well known "Crimson Text" font as an example, but I believe the problem is more general.

The problem is very prominent with the letter combination "ch", where the "c" is so close to "h" that the top of the "c" touches the ascender of the "h". I suspect other letters are affected.
Steps To ReproduceDownload the Crimson Text font:

http://www.fontsquirrel.com/fonts/Crimson

Install the TTF files. In Debian systems, this is achieved by copying the ttf files into the ~/.fonts directory.

Start Scribus

Create an empty document

Create a text frame

Open the Story Editor for this text frame

Type in the test word "church" (all lower case)

Select the text, still in Story Edit, and alter the font to be "Crimson Text Italics". Enlarging the font helps show the problem; I used 50 pt.

The text is shown in the main window, typeset incorrectly. Both "ch" pairs are too close together.

Use Ctrl+P to print the document as PostScript.

Use PostScript viewing software (I used Okular) to verify that the document contains the word "church" identically laid out as Scribus shows it.
Additional InformationI noticed the problem with the Scribus currently distributed with Debian Unstable (1.4.2.dfsg.2+r18267-0.1). I compiled v1.4.4 and 1.4.x (svn://scribus.net/branches/Version14x/Scribus). The problem is present with both these versions.

I tried compiling v1.4.4 with both QTARTHUR and CAIRO rendering back-ends, both gave the same result when viewed on screen. I didn't try printing for CAIRO backend.

I tried typesetting the same word ("church") using Inkscape, Calligra's Author, and Libreoffice Writer using Crimson Text Italics. These other programs gave (to the eye) identical output. The output seemed reasonable, with correct spacing between "c" and "h".

For comparison, I've uploaded a PNG file created with GIMP that is a composition of typesetting "church" using these different programs.
TagsNo tags attached.
Patch

Activities

paulmillar

2014-07-04 19:05

reporter  

combined.png (32,787 bytes)   
combined.png (32,787 bytes)   

Kunda

2014-07-07 14:08

updater   ~0032544

Reproduced on OSX 10.8.5 1.5svn r19322

jghali

2014-07-07 17:47

administrator   ~0032553

Last edited: 2014-07-07 17:49

This font has broken OpenType kerning table. The kerning value for the pair of character ('c', 'h') is duplicated, which is wrong according to OpenType specs for GPOS table. So either other tested applications do not use OpenType kerning table, or they mitigate the issue in some way. So better not use that font if that involves any prepress work.

jghali

2014-07-07 17:58

administrator   ~0032554

I've applied a mitigation patch for this issue. In the long term if that patch is not sufficient we may have to fall back to non OpenType kerning for such font however.

paulmillar

2014-07-07 20:14

reporter   ~0032556

Thanks for the quick response and fix.

I back-ported the patch to 1.4.x branch and can confirm it fixes the problem with 'c' 'h' character-pairs for my document.

Incidentally, did you use a validator to discover the broken kerning table? If so, which one (Microsoft, Adobe, fontforge, ...)? I'd like to give the font author some feedback so hopefully he can fix the problem upstream.

jghali

2014-07-09 21:50

administrator   ~0032633

I found the broken kerning table by using our GPOS table parser. The Microsoft font validator shows however also an array order error in GPOS table. It shows quite a few errors in other tables too btw...

Issue History

Date Modified Username Field Change
2014-07-04 19:05 paulmillar New Issue
2014-07-04 19:05 paulmillar File Added: combined.png
2014-07-07 14:08 Kunda Note Added: 0032544
2014-07-07 14:08 Kunda Status new => confirmed
2014-07-07 14:08 Kunda Target Version => 1.5.1
2014-07-07 17:47 jghali Note Added: 0032553
2014-07-07 17:48 jghali Note Edited: 0032553
2014-07-07 17:49 jghali Note Edited: 0032553
2014-07-07 17:58 jghali Note Added: 0032554
2014-07-07 17:58 jghali Status confirmed => resolved
2014-07-07 17:58 jghali Fixed in Version => 1.5.0svn
2014-07-07 17:58 jghali Resolution open => fixed
2014-07-07 17:58 jghali Assigned To => jghali
2014-07-07 20:14 paulmillar Note Added: 0032556
2014-07-09 21:50 jghali Note Added: 0032633
2014-07-19 22:03 christoph_s Status resolved => closed
2015-02-23 18:04 cbradney Target Version 1.5.1 => 1.5.0