w3c / csswg-drafts

CSS Working Group Editor Drafts
https://drafts.csswg.org/
Other
4.47k stars 659 forks source link

[css-fonts-4] oblique angle for synthesis in vertical text #2869

Closed fantasai closed 9 months ago

fantasai commented 6 years ago

We discussed this and deferred from Fonts 3, but what does it mean to synthesize oblique fonts in vertical text?

fantasai commented 6 years ago

Previous discussion: https://lists.w3.org/Archives/Public/www-style/2013Jul/0065.html

fantasai commented 6 years ago

Images from discussions: https://lists.w3.org/Archives/Public/www-archive/2018Jul/0003.html

css-meeting-bot commented 6 years ago

The Working Group just discussed oblique angle for synthesis in vertical text, and agreed to the following:

The full IRC log of that discussion <fantasai> Topic: oblique angle for synthesis in vertical text
<fantasai> github: https://github.com/w3c/csswg-drafts/issues/2869
<frremy> fantasai: there has been a lot of comments in that discussion here
<fantasai> https://lists.w3.org/Archives/Public/www-archive/2018Jul/0003.html
<frremy> astearns: let's box this to twenty minutes
<frremy> fantasai: when we are synthetizing oblique in vertical text, what are we synthetizing
<frremy> fantasai: we want to be consistent
<fantasai> s/consistent/consistent across UAs, at least/
<frremy> koji: the complex part is that japanese is right slanting
<frremy> koji: but that this doesn't work well for Roman fonts
<frremy> myles: (draws on the board)
<frremy> koji: japanese publishers do 3 or 4
<fantasai> Looking at https://lists.w3.org/Archives/Public/www-archive/2018Jul/att-0003/italics-vertical.png
<frremy> so word processors do 5 or 6
<frremy> japanese publishers that this looks weird, but every word processor does that
<frremy> florian: there is also a different between italic and oblique
<frremy> astearns: there are not italic fonts going in the backwards direction
<frremy> fantasai: plus sometimes roman text will be upright
<frremy> fantasai: and if the font provides a value for italic, the characters will have different slanting
<frremy> fantasai: I don't think this makes a lot of sense for us to change
<frremy> myles: if we want behaviors like 4, then font-style will have to be "smart" depending on the glyphs
<frremy> myles: that's not easy
<frremy> florian: this is only for when we synthesize, right?
<fantasai> https://lists.w3.org/Archives/Public/www-archive/2018Jul/att-0003/top-to-right-prohibited-chars.png
<frremy> myles: right, if the font says something, we will do what the font says
<fantasai> https://lists.w3.org/Archives/Public/www-archive/2018Jul/att-0003/top-to-right-em-dash.png
<frremy> fantasai: (just pasted links about interactions)
<frremy> myles: authors can change the angle though
<frremy> fantasai: yes, but the axis is also something we could change
<frremy> fantasai: see 7 or 8
<frremy> fantasai: in these cases, the japanese chars are slanted horizontally, but the roman text is slanted vertically
<frremy> fantasai: in respect to the glyph
<frremy> florian: when you synthesize, do you this for everything?
<frremy> myles: yeah, we would do something like 3
<frremy> koji: that seems wrong for roman though, right?
<frremy> myles: oh, right, I meant 5
<frremy> florian: but that is wrong for japanese
<frremy> florian: for oblique we should do 3 or 5
<frremy> florian: for italics, we should 4 or 6
<frremy> astearns: what do browsers do?
<frremy> fantasai: all over the place
<frremy> florian: (explains some of the weird results some browsers exhibit)
<frremy> PROPOSAL: when synthesizing oblique, the origin is the center of the glyph
<frremy> astearns: any objection?
<frremy> dauwhe: but that seems weird for roman, doesn't it?
<frremy> florian: you get a bit of overlap on each side, instead on overlap around only one side
<frremy> dauwhe: I'm not sure this is an improvement
<frremy> myles: it is, because there will be twice as less layout overlap, there will be less visual overlap
<frremy> fantasai: also, when you center the text, it will look centered
<frremy> (heycam is right)
<frremy> astearns: any objection?
<heycam> s/dauwhe/plinss/
<frremy> RESOLVED: skew glyphs around their center
<frremy> florian: (re-explains his proposal for the directionality of italic vs oblique)
<frremy> fantasai: the problem is that some text could have a mix of upright and not-upright
<frremy> fantasai: so specifying an angle will mess one or the other
<frremy> florian: but roman will probably have its italic defined
<frremy> koji: are you saying we should change angle to content?
<frremy> koji: that seems weird?
<frremy> myles: we could also use transforms
<frremy> florian: 3 seems what publishers want
<frremy> koji: I think what publishers want could be achieved with an angle
<frremy> florian: but for italics, this is gonna be a mess, because the italic will come by default for roman text
<frremy> koji: but really, what is usually done, is use the fullwidth chars, and not use upright
<frremy> florian: upright italic isn't really a thing
<frremy> fantasai: so the upright text will have the italic/oblique from the cjk font
<frremy> fantasai: so koji is right, it's probably fine not to do the right thing, because fonts can do the right thing
<frremy> astearns: time's up
<frremy> astearns: can we resolve?
<frremy> fantasai: 6, falling back to 5?
<frremy> myles: let's resolve on that, and we have two other issues we didnt' get to today
<frremy> myles: which will be about upright etc
<frremy> PROPOSAL: 5 and 6 for italic and obliques with positive angles
<frremy> astearns: any objection?
<frremy> RESOLVED: 5 and 6 for italic and obliques with positive angles https://lists.w3.org/Archives/Public/www-archive/2018Jul/att-0003/italics-vertical.png
<frremy> florian: this is what IE/Edge is doing
<frremy> frremy: (yay!)
<frremy> astearns: and negative angle goes the other way?
<frremy> fantasai: yes, that is how it usually works
<fantasai> action fantasai: file issue about what does upright latin do, and how to do other-axis obliques
svgeesus commented 6 years ago

5 and 6 for italic and obliques with positive angles

Checking before editing that this means 5 for italic, and 6 for obliques with positive angles, and undefined for obliques with negative angles

fantasai commented 6 years ago

@svgeesus It means positive angles skew such that the line-over edge shifts towards the line-right side while the line-under edge shifts towards the line-left side, for both italics and obliques (synthesized). Negative angles skew the other direction. (They're not undefined, they're the opposite of positive.)

jonjohnjohnson commented 6 years ago

@fantasai is it always considered physical "line-right side" and "line-left side" and not logical "line-end side" and "line-start side"?

svgeesus commented 5 years ago

@jonjohnjohnson This will be physical rather than logical, because that is how OpenType defines it:

Scale interpretation: Values can be interpreted as the angle, in counter-clockwise degrees, of oblique slant from whatever the designer considers to be upright for that font design.