- From: Peter Krautzberger <peter.krautzberger@mathjax.org>
- Date: Thu, 30 Jul 2015 16:24:44 +0200
- To: Alan Stearns <stearns@adobe.com>
- Cc: "public-houdini@w3.org" <public-houdini@w3.org>, John Daggett <jdaggett@mozilla.com>
- Message-ID: <CABqxo828you1DAyCMCntRwL3ASq1Lg-5EjhhZJ826SBVeDQyjQ@mail.gmail.com>
Thanks for clarifying, Alan! It would definitely be a helpful step. Peter. On Thu, Jul 30, 2015 at 4:23 PM, Alan Stearns <stearns@adobe.com> wrote: > On 7/30/15, 7:15 AM, "Peter Krautzberger" <peter.krautzberger@mathjax.org> > wrote: > > >Hi Alan, > > > > > >It looks like this would provide some global font metrics, but not the > >metrics of individual characters/strings. Is that correct? > > > > > >That would be helpful, particularly the baseline information, but it > >would not be sufficient for a use case like mathematical layout. > > Not global - it’s giving the results from the first line box. But you are > correct, this would not be sufficient for mathematical layout. It’s a step > towards what you need, satisfying simpler use cases. > > > > > > > > >Best regards, > >Peter. > > > > > >On Wed, Jul 29, 2015 at 3:02 AM, Alan Stearns > ><stearns@adobe.com> wrote: > > > >Hey all, > > > >I initially thought that exposing raw font data would be the right first > >step for finding a way to correctly polyfill initial-letter, line grid, > >etc. Conversations I’ve had since the last Houdini meeting have moved me > >towards John Daggett’s point of view, that exposing the typographic > >*results* of line boxes is a better stepping-stone. Getting those results > >and making small changes is better than trying to reverse-engineer what > >the browser is doing with the raw font data. > > > >The box tree API currently talks about DeadFragmentInformation, which > >gives you a basic geometry result. My current thinking is that there > >should be a way to get more fine-grained typographic information within > >that basic geometry. It might look like: > > > >interface DeadFontMetrics { > > readonly attribute double baseline; > > readonly attribute double alphabeticBaseline; > > readonly attribute double ideographicBaseline; > > readonly attribute double ascent; > > readonly attribute double descent; > > readonly attribute double xHeight; > > readonly attribute double capHeight; > >} > > > > > >partial interface DeadFragmentInformation { > > Promise<DeadFontMetrics> getFontMetrics(); > >}; > > > > > >Where the DeadFontMetrics attributes give you the relevant typographic > >position of the first in-flow line box in pixels from the top of the > >fragment. > > > >An interesting idea is that we could work on the box tree and font metrics > >in parallel by adding getFontMetrics() to Element as well, which would > >give you the same typographic positions of the first in-flow line box from > >the element’s top. This might be sufficient to polyfill initial-letter and > >flexbox’s align-items:baseline. Something more complicated like line-grid > >would need to wait for more of the box tree to be exposed. > > > >Thanks, > > > >Alan > > > > > > > > > > > > > > > > >
Received on Thursday, 30 July 2015 14:25:12 UTC