gravitystorm / openstreetmap-carto

A general-purpose OpenStreetMap mapnik style, in CartoCSS
Other
1.53k stars 819 forks source link

Italic vs high-contrast fonts #2692

Closed sommerluk closed 7 years ago

sommerluk commented 7 years ago

screenshot 1

The screenshot uses Noto Serif Regular instead of Noto Sans Italic.

Currently, for oblique-fonts, we use Noto Sans Italic, which covers the latin, greek and cyrillic scripts – following https://en.wikipedia.org/wiki/List_of_writing_systems#List_of_writing_scripts_by_adoption that’s about 58% of the population. For the other scripts, we fall back to the regular style; so 42% do not see any difference between oblique-fonts and book-fonts.

It is unlikely that we will ever have italic/oblique fonts for the other scripts, because italic/oblique design is a particularity of latin/greek/cyrillic typeface design and mostly unknown in other cultural contexts.

On the other hand, the difference between sans/low-contrast on one hand, and serif/high-contrast on the other hand is more widespreaded. (Contrast means the contrast in stroke thickness within the glyphs: In low-contrast fonts all parts of the strokes have almost the same thinkness, and in high-contrast fonts some parts show a much thicker stroke than other parts.) With the currently released Noto Serif fonts, we would cover about 85% of the population. And in the next Noto release, there will be further more Serif fonts, the the coverage would raise again.

The biggest “coverage gain” we would have with the CJK scripts. But because of the complex glyph forms and the often small font size in openstreetmap-carto, a high-contrast CJK glyph is here also problematic for legibility. Note also that, as far as I know, Noto Serif CJK (though released some months ago) is still not packaged for Ubuntu, which might mean that it won’t be available on the osm.org servers soon.

Noto Italic vs Regular means that the Italic font is designed to be harmonic with the Regular style, but at the same time have an easy-to-spot difference. Noto Serif vs Sans means that the Serif font is also designed to be harmonic with the Sans style, but it’s not designed to have an easy-to-spot difference; of course it looks different, but it’s not so obvious.

In general, serif/high-contrast styles are more difficult to render and read at small font sizes that sans/low-contrast fonts.

Advantages of Serif:

Disadvantages of Serif:

Comments?

mboeringa commented 7 years ago

Always good to have the comparison image of the current rendering of the same area:

http://www.openstreetmap.org/#map=13/5.3282/-4.0782

afbeelding

kocio-pl commented 7 years ago

Interesting proposition. I'd like to know what the people using these scripts (other than latin, greek and cyrillic) think about it?

imagico commented 7 years ago

To me this looks mostly awkward but i would be interested in examples where this supposedly leads to advantages and in opinions for native users of scripts where this would apply.

Also i would like to hear to what extent different scripts know the serif/sans serif and the regular/oblique concepts or something comparable to them (or to the other script variants known for Latin like bold or small caps) and how these concepts are currently mapped to the fonts we use or could be to improve the map in those areas.

In Arabic we have for example the Naskh/Kufic distinction - see #2496 - which cannot be compared to either of these, it is more like the Latin Antiqua/Fraktur distinction.

sommerluk commented 7 years ago

An example with CJK glyphs (especially left bottom and right top).

Serif: screenshot 1

Oblique/Italic (current): screenshot 2

sommerluk commented 7 years ago

About regular vs bold: Its usage is quite clear: bold are labels that we want to emphasis: They stand out compared to regular labels.

What’s our policy for italic/oblique labels? When do we use regular, and when oblique? It seems that areas are often rendered oblique, but on the other hand motorway connections are point geometries, and also rendered oblique. Is there a policy?

sommerluk commented 7 years ago

I do not know so well non-latin scripts. But as far as I know about the scripts:

Some technical remarks:

Some Noto-related remarks:

imagico commented 7 years ago

There seem to be two different effects here:

kocio-pl commented 7 years ago

What’s our policy for italic/oblique labels? When do we use regular, and when oblique? It seems that areas are often rendered oblique, but on the other hand motorway connections are point geometries, and also rendered oblique. Is there a policy?

My wild guess is that we have no rules here.

matthijsmelissen commented 7 years ago

Is there a policy?

Not at the moment.

sommerluk commented 7 years ago

i wonder if it would be possible to combine fonts so that we have the oblique in Latin and the serif version in scripts that do not have an oblique variant

Interesting proposal! Technically, it is possible! And it would preserve the advantage of a visually easy to spot distinct rendering for LGC, and at the same time make a (less) distinct rendering for other scripts possible.

In general, I am reluctant to use so different concepts like regular/italic on one place and sans/serif on other places, but for the main cartographic feature. That’s not mainly about multi-language labels. You will also have situations where some POI on your screen have one script, and others another script (country boarders, bilingual regions…). And even if you do not see them on the same screen at the same moment, it might feel less intuitive when you are familiar with the rendering in latin regions and than you switch to an asian region.

But I think it might be an option to combine both: Use “Noto Serif Italic” for LGC, “Noto Serif * Regular” for other available serif scripts (and our usual fallback fonts). So we could preserve both, the oblique rendering for LGC (but with serifs now), and nevertheless have a consistent look&feel with the difference “serif vs. sans” that will be available in most places of the planet. It would look like this: screenshot 1

imagico commented 7 years ago

I definitely prefer the serif italic to the serif regular for latin script. It might even be that this improves on notofonts/oriya#4 relative to the current design.

My main reasoning was that the serif - sans serif distinction on non-latin scripts is fairly different from both the regular - oblique and the serif - sans serif distinctions so it might not be such a big problem to combine them differently. For most non-native readers the styling nuances of foreign scripts are probably not that meaningful (but opinions from the other side, i.e. from non-native latin readers, would be useful here).

But if serif italic works nicely for what we currently use sans oblique for that would also work.

sommerluk commented 7 years ago

There is one design pattern that I forgot in the list above:

Regular/condensed: The font width. In condensed font faces, the glyphs take less horizontal space. This one might be interesting, as Noto Phase III will support this for a varity of fonts.

sommerluk commented 7 years ago

I’ve updated https://github.com/gravitystorm/openstreetmap-carto/issues/2692#issuecomment-318041654 about font width and also font weight.

sommerluk commented 7 years ago

Current usage of @oblique-fonts is:

kocio-pl commented 7 years ago

I believe this can be closed as the code solving it was rejected.