bugFree UCS Outline Fonts - Bugs: bug #52143, Add 'BASE' table

 
 

bug #52143: Add 'BASE' table

Submitter:  None
Submitted:  Fri 29 Sep 2017 05:49:33 PM UTC
   
 
Category:  font metrics Severity:  3 - Normal
Item Group:  None Status:  Postponed
Privacy:  Public Assigned to:  Stevan_White
Originator Email:  -email is unavailable- Open/Closed:  Open
Release:  * 2012-05-03
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Sun 10 Dec 2017 10:10:55 PM UTC, comment #6: 

I went ahead and added the table to the important faces,
even though I ahve no way to test the values.

Steve White <Stevan_White>
Group administrator
Sun 10 Dec 2017 02:18:41 PM UTC, comment #5: 

Thanks David, these are good practical examples.

I'm unconvinced as to how varying font sizes are meant to work in Devanagari, and other Indic scripts.  In your example, for instance, although the head-lines of the letters of different sizes could be made to coencide, they would still be of different thicknesses, and don't look that great together.

The examples in the W3C document are of initial letters to a paragraph (called "drop caps" in European typography).  Sure, here it's good for the head line of the drop cap to coencide with that of the main text.  But drop-caps are dubious business for font-independent documents, and fiddly stuff even with finer tools.

The situation for drop-caps could be improved with adoption of  CSS3 recommenations: primarily
https://www.w3.org/TR/css3-linebox/#aligning-initial-letter
This gives much better control of how drop-caps are placed, including using a hanging baseline that makes sense for Indic scripts.

This will require some experimenation, so it will be for a future release.


Steve White <Stevan_White>
Group administrator
Tue 05 Dec 2017 06:04:32 PM UTC, comment #4: 

The 'BASE' table defines baselines. Baselines are used to align glyphs at different font sizes, for things like drop caps, or between different fonts.

data:text/html;charset=utf-8,<div style="font: 100px FreeSerif">q<small>q</small>

In that example, the two letters are at different sizes but share the same baseline. This works because FreeSerif’s Latin glyphs are designed so their bases are on the x-axis.

data:text/html;charset=utf-8,<div style="font: 100px FreeSerif">%E0%A4%95<small>%E0%A4%95</small>

Devanagari uses a hanging baseline. That means that glyphs of different sizes should be aligned at the headstroke. However, in that example, the glyphs are not aligned at the headstroke: they are aligned at the x-axis. (Browser support for baselines is low so it wouldn’t look right anyway. This example is just for explanatory purposes.)

> You should know, in all those scripts, the glyphs have already been placed vertically so that they would look fairly good in mixed text.

This is not related to the 'BASE' table.

David Corbett <dscorbett>
Wed 04 Oct 2017 12:07:47 PM UTC, comment #3: 

Hi,

You should know, in all those scripts, the glyphs have already been placed vertically so that they would look fairly good in mixed text.

Is this a bug or a feature request?

What I'm asking is: what specific text would look better if FreeFont specified, say, a hanging baseline?

You mention some software recently supporting the feature.  Can we get a test case?  (Otherwise, we're working blind.)


Steve White <Stevan_White>
Group administrator
Wed 04 Oct 2017 10:32:50 AM UTC, comment #2: 

Yes, Steve.

In Planet Inkscape (http://planet.inkscape.org/) I have found a blog posts mentioned a CSS property "dominent-baseline" which could control text scaling behavior upon different baselines, also including a sample image of default font behavior with alphabetic and hanging beseline.

W3C also working for Indic Layout Requirements recently, where has samples and instructions for aligning drop initial with hanging and alphabetic baseline in Indic scripts. If this document is published, such usage would become normalized.
https://w3c.github.io/ilreq/#h_typical_drop_initial_usage_in_indic_scripts

Some property softeware already supported various baseline via parsing this table, notably Adobe InDesign. In recent times HarfBuzz repository at GitHub has a request for supporting this table, if this is fixed, many programs relied on this library will also handle this table.

In FreeFont many scripts can add alphabetic baseline, some Indic scripts such as Devanagari, Bengali, Gurmukhi also suitable to add hanging baseline. If you add this table, these scripts would get proposed aligning behavior if a software environment support this table.

Best regards.

Anonymous
Sat 30 Sep 2017 12:08:02 PM UTC, comment #1: 

Hello Anonymous,

I have looked at that table before, but it was unclear to me how it would be of use in GNU FreeFont, what problems it would address.

Can you point to a specific problem in the current rendering of text that would benefit from the values of this table?

Steve White <Stevan_White>
Group administrator
Fri 29 Sep 2017 05:49:33 PM UTC, original submission:  

The 'BASE' (baseline table) provides information used to align glyphs of different scripts and sizes in a line of text, also provides minimum (min) and maximum (max) glyph extent values for necessary purposes. The information of this table is already documented in OT specification and you can access:
https://www.microsoft.com/typography/otspec/base.htm

FontForge support this table too.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by Stevan_White (Posted a comment)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2017-12-10 Stevan_White StatusNeed info Postponed
    2017-09-30 Stevan_White StatusNone Need info
        Assigned toNone Stevan_White

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code