[Fontconfig] Font weights?
Behdad Esfahbod
behdad at behdad.org
Sat Sep 17 06:34:41 PDT 2011
On 09/17/11 08:00, Dave Pawson wrote:
> W3c css has
> http://www.w3.org/TR/css3-fonts/#font-weight-prop
>
> 100 - Thin
> 200 - Extra Light (Ultra Light)
> 300 - Light
> 400 - Normal
> 500 - Medium
> 600 - Semi Bold (Demi Bold)
> 700 - Bold
> 800 - Extra Bold (Ultra Bold)
> 900 - Black (Heavy)
>
> fontconfig has
>
> #define FC_WEIGHT_THIN 0
> #define FC_WEIGHT_EXTRALIGHT 40
> #define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
> #define FC_WEIGHT_LIGHT 50
> #define FC_WEIGHT_BOOK 75
> #define FC_WEIGHT_REGULAR 80
> #define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
> #define FC_WEIGHT_MEDIUM 100
> #define FC_WEIGHT_DEMIBOLD 180
> #define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD
> #define FC_WEIGHT_BOLD 200
> #define FC_WEIGHT_EXTRABOLD 205
> #define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
> #define FC_WEIGHT_BLACK 210
> #define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
> #define FC_WEIGHT_EXTRABLACK 215
> #define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK
>
> Is there any clear relationship between them please?
This is how Pango maps them:
static int
pango_fc_convert_weight_to_fc (PangoWeight pango_weight)
{
if (pango_weight <= (PANGO_WEIGHT_THIN + PANGO_WEIGHT_ULTRALIGHT) / 2)
return FC_WEIGHT_THIN;
else if (pango_weight <= (PANGO_WEIGHT_ULTRALIGHT + PANGO_WEIGHT_LIGHT) / 2)
return FC_WEIGHT_ULTRALIGHT;
else if (pango_weight <= (PANGO_WEIGHT_LIGHT + PANGO_WEIGHT_BOOK) / 2)
return FC_WEIGHT_LIGHT;
else if (pango_weight <= (PANGO_WEIGHT_BOOK + PANGO_WEIGHT_NORMAL) / 2)
return FC_WEIGHT_BOOK;
else if (pango_weight <= (PANGO_WEIGHT_NORMAL + PANGO_WEIGHT_MEDIUM) / 2)
return FC_WEIGHT_NORMAL;
else if (pango_weight <= (PANGO_WEIGHT_MEDIUM + PANGO_WEIGHT_SEMIBOLD) / 2)
return FC_WEIGHT_MEDIUM;
else if (pango_weight <= (PANGO_WEIGHT_SEMIBOLD + PANGO_WEIGHT_BOLD) / 2)
return FC_WEIGHT_DEMIBOLD;
else if (pango_weight <= (PANGO_WEIGHT_BOLD + PANGO_WEIGHT_ULTRABOLD) / 2)
return FC_WEIGHT_BOLD;
else if (pango_weight <= (PANGO_WEIGHT_ULTRABOLD + PANGO_WEIGHT_HEAVY) / 2)
return FC_WEIGHT_ULTRABOLD;
else if (pango_weight <= (PANGO_WEIGHT_HEAVY + PANGO_WEIGHT_ULTRAHEAVY) / 2)
return FC_WEIGHT_BLACK;
else
return FC_WEIGHT_EXTRABLACK;
}
where:
typedef enum {
PANGO_WEIGHT_THIN = 100,
PANGO_WEIGHT_ULTRALIGHT = 200,
PANGO_WEIGHT_LIGHT = 300,
PANGO_WEIGHT_BOOK = 380,
PANGO_WEIGHT_NORMAL = 400,
PANGO_WEIGHT_MEDIUM = 500,
PANGO_WEIGHT_SEMIBOLD = 600,
PANGO_WEIGHT_BOLD = 700,
PANGO_WEIGHT_ULTRABOLD = 800,
PANGO_WEIGHT_HEAVY = 900,
PANGO_WEIGHT_ULTRAHEAVY = 1000
} PangoWeight;
behdad
> TIA
More information about the Fontconfig
mailing list