Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/pr/2349'
Browse files Browse the repository at this point in the history
Conflicts:
	CHANGELOG.md
  • Loading branch information
pnorman committed Sep 19, 2016
2 parents 90a2843 + 71aa1c9 commit be8c629
Show file tree
Hide file tree
Showing 3 changed files with 274 additions and 44 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
@@ -1,6 +1,11 @@
## [Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.43.0...master)
### Major Changes
- Rendering of restricted access roads and paths significantly changed
- Changed to use Noto fonts for all languages

### Dependency Changes
- The fonts required have changed

### Changes
- A code of conduct adopted, based on the Go code of conduct
- Adjustments to city wall rendering
Expand Down
31 changes: 7 additions & 24 deletions INSTALL.md
Expand Up @@ -42,38 +42,21 @@ The repeated www.naturalearthdata.com in the Natural Earth shapefiles is correct
Put these shapefiles at `path/to/openstreetmap-carto/data`.

## Fonts
The stylesheet depends on a number of openly licensed fonts for support of all the languages found on the map. The package which supplies these fonts on Ubuntu 16.04 or Debian Testing is indicated.
The stylesheet uses Noto Sans, an openly licensed font from Google with support for multiple scripts. The "UI" version is used where available, with its vertical metrics which fit better with Latin text. Other fonts from the Noto family are used for some other languages.

If a font is missing, it will skip to the next available font which contains those characters. If you are not concerned with a particular script, you do not need its fonts. DejaVu Sans and Unifont are the two required fonts, and included on most systems.
DejaVu Sans is used as an optional fallback font for systems without Noto Sans. If all the Noto fonts are installed, it should never be used.

Mapnik 3 is required for acceptable rendering of most non-Latin scripts, particularly those with complicated diacritics and tone marks.

### Global
* DejaVu Sans, for most languages (`fonts-dejavu-core`)
* Droid Sans Fallback, as a reasonable fallback (`fonts-droid-fallback`)
* Unifont, as a last resort fallback (`ttf-unifont`)

### Southeast Asia
* Arundina, for Thai (`fonts-sipa-arundina`)
* Padauk, for Burmese (`fonts-sil-padauk`)
* Khmer OS Metal Chrieng Regular, for Khmer (`fonts-khmeros`)
Unifont is used as a last resort fallback, with it's excellent coverage, common presence on machines, and ugly look.

### South Asia

* Mukti Narrow, for Bangali (`fonts-beng-extra`)
* Gargi Medium, for Devanagari (`fonts-gargi`)
* TSCu_Paranar, for Tamil (`fonts-taml-tscu`)
* Tibetan Machine Uni, for Tibetian (`fonts-tibetan-machine`)
Mapnik 3 is required for acceptable rendering of most non-Latin scripts, particularly those with complicated diacritics and tone marks.

On Ubuntu 16.04 or Debian Testing you can install all the fonts with
On Ubuntu 16.04 or Debian Testing you can install all required fonts with

```
sudo apt-get install fonts-dejavu-core fonts-droid-fallback ttf-unifont \
fonts-sipa-arundina fonts-sil-padauk fonts-khmeros \
fonts-beng-extra fonts-gargi fonts-taml-tscu fonts-tibetan-machine
sudo apt-get install fonts-noto ttf-unifont
```

On Ubuntu 14.04, replace `fonts-droid-fallback` with `fonts-droid`.
DejaVu is packaged as `fonts-dejavu-core`.

## Dependencies

Expand Down
282 changes: 262 additions & 20 deletions style.mss
Expand Up @@ -2,26 +2,268 @@ Map {
background-color: @water-color;
}

/* A regular style. */
@book-fonts: "DejaVu Sans Book", "Arundina Regular", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
"Mukti Narrow Regular", "Gargi Regular", "TSCu_Paranar Regular", "Tibetan Machine Uni Regular",
"Droid Sans Fallback Regular", "Unifont Medium", "unifont Medium";

/* A bold style is available for almost all scripts. Bold text is heavier than regular text and can be used for emphasis.
Fallback is a regular style. */
@bold-fonts: "DejaVu Sans Bold", "Arundina Bold", "Arundina Sans Bold", "Padauk Bold", "TSCu_Paranar Bold",
"DejaVu Sans Book", "Arundina Regular", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
"Mukti Narrow Regular", "gargi Medium", "TSCu_Paranar Regular", "Tibetan Machine Uni Regular",
"Droid Sans Fallback Regular", "Unifont Medium", "unifont Medium";

/* An oblique or italic style is available for various (mostly latin-like) scripts. Oblique and italic style are not heavier than
regular style. But they are distinguishable from regular style. Fallback is a regular style. Because many (mostly asian) scripts
do not have an oblique or italic style by nature, be aware that for a considerable number of labels this style will make no
difference to the regular style. */
@oblique-fonts: "DejaVu Sans Oblique", "Arundina Italic", "Arundina Sans Italic", "TSCu_Paranar Italic",
"DejaVu Sans Book", "Arundina Regular", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
"Mukti Narrow Regular", "Gargi Regular", "TSCu_Paranar Regular", "Tibetan Machine Uni Regular",
"Droid Sans Fallback Regular", "Unifont Medium", "unifont Medium";
/*
About fonts:
Noto is a font family that wants to cover most of Unicode with a harmonic
design across various scripts. We use Noto for most text, with some support
for backward-compatibility and Unifont as fallback.
By order:
1. Noto Sans is available for most scripts and it is used as a first choice.
Where available the UI version of the fonts is used. In some cases the UI version
has fewer glyphs, so both are listed. Most of the list is in alphabetical order,
but there are some exceptions
- Noto Sans UI is before all other fonts
- The CJK fonts are manually ordered. The used CJK font covers all CJK
languages, but defaults to the japanese glyph style if various glyph
styles are available.
2. Noto provides three variants of Arabic: Noto Kufi Arabic, Noto Naskh Arabic
and Noto Nastaliq Urdu. Noto Kufi Arabic is the one that is most similiar to a
Sans style, so this one is used while both other variants are ignored. Arabic
fonts are placed behind Sans fonts because they might re-define some commonly
used signs like parenthesis or quotation marks, and the arabic design should
not overwrite the standard design.
3. Noto provides two variants of Emoji: Noto Color Emoji and Noto Emoji. The
colour variant is a SVG flavoured OpenType font that contains coloured emojis.
This is not useful in cartography, so we use the “normal” monochromatic
Noto Emoji.
4. The list still includes DejaVu for compatibility on systems without Noto.
5. Unifont. This is a fallback of last resort with excellent coverage.
Unifont Medium covers the whole Unicode BMP without surrogates and without PUA.
Unifont Upper Medium covers some parts of the other Unicode planes. Unifont
Medium Sample would cover the BMP PUA with replacement characters, but cannot
be used because Mapnik does not support SBIT TTF.
*/

/*
A regular style.
*/
@book-fonts: "Noto Sans UI Regular",
"Noto Sans CJK JP Regular",
"Noto Sans Armenian Regular",
"Noto Sans Balinese Regular",
"Noto Sans Bamum Regular",
"Noto Sans Batak Regular",
"Noto Sans Bengali UI Regular",
"Noto Sans Buginese Regular",
"Noto Sans Buhid Regular",
"Noto Sans Canadian Aboriginal Regular",
"Noto Sans Cham Regular",
"Noto Sans Cherokee Regular",
"Noto Sans Coptic Regular",
"Noto Sans Devanagari UI Regular", "Noto Sans Devanagari Regular",
"Noto Sans Ethiopic Regular",
"Noto Sans Georgian Regular",
"Noto Sans Gujarati UI Regular", "Noto Sans Gujarati Regular",
"Noto Sans Gurmukhi UI Regular",
"Noto Sans Hanunoo Regular",
"Noto Sans Hebrew Regular",
"Noto Sans Javanese Regular",
"Noto Sans Kannada UI Regular",
"Noto Sans Kayah Li Regular",
"Noto Sans Khmer UI Regular",
"Noto Sans Lao UI Regular",
"Noto Sans Lepcha Regular",
"Noto Sans Limbu Regular",
"Noto Sans Lisu Regular",
"Noto Sans Malayalam UI Regular",
"Noto Sans Mandaic Regular",
"Noto Sans Mongolian Regular",
"Noto Sans Myanmar UI Regular",
"Noto Sans New Tai Lue Regular",
"Noto Sans NKo Regular",
"Noto Sans Ol Chiki Regular",
"Noto Sans Oriya UI Regular", "Noto Sans Oriya Regular",
"Noto Sans Osmanya Regular",
"Noto Sans Samaritan Regular",
"Noto Sans Saurashtra Regular",
"Noto Sans Shavian Regular",
"Noto Sans Sinhala Regular",
"Noto Sans Sundanese Regular",
"Noto Sans Symbols Regular",
"Noto Sans Syriac Eastern Regular",
"Noto Sans Syriac Estrangela Regular",
"Noto Sans Syriac Western Regular",
"Noto Sans Tagalog Regular",
"Noto Sans Tagbanwa Regular",
"Noto Sans Tai Le Regular",
"Noto Sans Tai Tham Regular",
"Noto Sans Tai Viet Regular",
"Noto Sans Tamil UI Regular",
"Noto Sans Telugu UI Regular",
"Noto Sans Thaana Regular",
"Noto Sans Thai UI Regular",
"Noto Sans Tibetan Regular",
"Noto Sans Tifinagh Regular",
"Noto Sans Vai Regular",
"Noto Sans Yi Regular",

"Noto Kufi Arabic Regular",

"Noto Emoji Regular",

"DejaVu Sans Book",

"Unifont Medium", "unifont Medium", "Unifont Upper Medium";

/*
A bold style is available for almost all scripts. Bold text is heavier than
regular text and can be used for emphasis. Fallback is a regular style.
*/
@bold-fonts: "Noto Sans UI Bold",
"Noto Sans CJK JP Bold",
"Noto Sans Armenian Bold",
"Noto Sans Bengali UI Bold",
"Noto Sans Cham Bold",
"Noto Sans Devanagari UI Bold", "Noto Sans Devanagari Bold",
"Noto Sans Ethiopic Bold",
"Noto Sans Georgian Bold",
"Noto Sans Gujarati UI Bold", "Noto Sans Gujarati Bold",
"Noto Sans Gurmukhi UI Bold",
"Noto Sans Hebrew Bold",
"Noto Sans Kannada UI Bold",
"Noto Sans Khmer UI Bold",
"Noto Sans Lao UI Bold",
"Noto Sans Malayalam UI Bold",
"Noto Sans Myanmar UI Bold",
"Noto Sans Oriya UI Bold", "Noto Sans Oriya Bold",
"Noto Sans Sinhala Bold",
"Noto Sans Tamil UI Bold",
"Noto Sans Telugu UI Bold",
"Noto Sans Thaana Bold",
"Noto Sans Thai UI Bold",
"Noto Sans Tibetan Bold",

"Noto Sans CJK JP Regular",
"Noto Sans Balinese Regular",
"Noto Sans Bamum Regular",
"Noto Sans Batak Regular",
"Noto Sans Buginese Regular",
"Noto Sans Buhid Regular",
"Noto Sans Canadian Aboriginal Regular",
"Noto Sans Cherokee Regular",
"Noto Sans Coptic Regular",
"Noto Sans Devanagari UI Regular", "Noto Sans Devanagari Regular",
"Noto Sans Georgian Regular",
"Noto Sans Gujarati UI Regular", "Noto Sans Gujarati Regular",
"Noto Sans Hanunoo Regular",
"Noto Sans Javanese Regular",
"Noto Sans Kayah Li Regular",
"Noto Sans Lepcha Regular",
"Noto Sans Limbu Regular",
"Noto Sans Lisu Regular",
"Noto Sans Mandaic Regular",
"Noto Sans Mongolian Regular",
"Noto Sans New Tai Lue Regular",
"Noto Sans NKo Regular",
"Noto Sans Ol Chiki Regular",
"Noto Sans Osmanya Regular",
"Noto Sans Samaritan Regular",
"Noto Sans Saurashtra Regular",
"Noto Sans Shavian Regular",
"Noto Sans Sundanese Regular",
"Noto Sans Symbols Regular",
"Noto Sans Syriac Eastern Regular",
"Noto Sans Syriac Estrangela Regular",
"Noto Sans Syriac Western Regular",
"Noto Sans Tagalog Regular",
"Noto Sans Tagbanwa Regular",
"Noto Sans Tai Le Regular",
"Noto Sans Tai Tham Regular",
"Noto Sans Tai Viet Regular",
"Noto Sans Tifinagh Regular",
"Noto Sans Vai Regular",
"Noto Sans Yi Regular",

"Noto Kufi Arabic Bold",

"Noto Kufi Arabic Regular",

"Noto Emoji Regular",

"DejaVu Sans Bold", "DejaVu Sans Book",

"Unifont Medium", "unifont Medium", "Unifont Upper Medium";

/*
Italics are only available for the base font, not the other scripts.
For a considerable number of labels this style will make no difference to the regular style.
*/
@oblique-fonts: "Noto Sans UI Italic",
"Noto Sans UI Regular",
"Noto Sans CJK JP Regular",
"Noto Sans Armenian Regular",
"Noto Sans Balinese Regular",
"Noto Sans Bamum Regular",
"Noto Sans Batak Regular",
"Noto Sans Bengali UI Regular",
"Noto Sans Buginese Regular",
"Noto Sans Buhid Regular",
"Noto Sans Canadian Aboriginal Regular",
"Noto Sans Cham Regular",
"Noto Sans Cherokee Regular",
"Noto Sans Coptic Regular",
"Noto Sans Devanagari UI Regular", "Noto Sans Devanagari Regular",
"Noto Sans Ethiopic Regular",
"Noto Sans Georgian Regular",
"Noto Sans Gujarati UI Regular", "Noto Sans Gujarati Regular",
"Noto Sans Gurmukhi UI Regular",
"Noto Sans Hanunoo Regular",
"Noto Sans Hebrew Regular",
"Noto Sans Javanese Regular",
"Noto Sans Kannada UI Regular",
"Noto Sans Kayah Li Regular",
"Noto Sans Khmer UI Regular",
"Noto Sans Lao UI Regular",
"Noto Sans Lepcha Regular",
"Noto Sans Limbu Regular",
"Noto Sans Lisu Regular",
"Noto Sans Malayalam UI Regular",
"Noto Sans Mandaic Regular",
"Noto Sans Mongolian Regular",
"Noto Sans Myanmar UI Regular",
"Noto Sans New Tai Lue Regular",
"Noto Sans NKo Regular",
"Noto Sans Ol Chiki Regular",
"Noto Sans Oriya UI Regular", "Noto Sans Oriya Regular",
"Noto Sans Osmanya Regular",
"Noto Sans Samaritan Regular",
"Noto Sans Saurashtra Regular",
"Noto Sans Shavian Regular",
"Noto Sans Sinhala Regular",
"Noto Sans Sundanese Regular",
"Noto Sans Symbols Regular",
"Noto Sans Syriac Eastern Regular",
"Noto Sans Syriac Estrangela Regular",
"Noto Sans Syriac Western Regular",
"Noto Sans Tagalog Regular",
"Noto Sans Tagbanwa Regular",
"Noto Sans Tai Le Regular",
"Noto Sans Tai Tham Regular",
"Noto Sans Tai Viet Regular",
"Noto Sans Tamil UI Regular",
"Noto Sans Telugu UI Regular",
"Noto Sans Thaana Regular",
"Noto Sans Thai UI Regular",
"Noto Sans Tibetan Regular",
"Noto Sans Tifinagh Regular",
"Noto Sans Vai Regular",
"Noto Sans Yi Regular",

"Noto Kufi Arabic Regular",

"Noto Emoji Regular",

"DejaVu Sans Oblique", "DejaVu Sans Book",

"Unifont Medium", "unifont Medium", "Unifont Upper Medium";

@water-color: #b5d0d0;
@land-color: #f2efe9;
Expand Down

0 comments on commit be8c629

Please sign in to comment.