Какое свойство в файле шрифта заставляет программу имитировать полужирный шрифт?

Я ищу свойство в файле шрифта (либо из WPF System.Windows.Media.Fonts Typeface или GlyphTypeface ) или прямой доступ к файлу .ttf / .otf, который позволит мне определить, если такая программа, как Write / WordPad в Windows к шрифту будет применен жирный шрифт. По сути, некоторые шрифты с атрибутом Bold все равно получат дополнительную жирность, а некоторые нет. Я' я пытаюсь выяснить, какая логика используется для этого определения.

Чтобы увидеть это вручную, скопируйте и вставьте следующее в Write / WordPad (или OOo Writer, или MS Word или ...) и измените каждую строку лицевой стороной к названию (например, примените Arial Black к Arial Black)

  1. Arial Black
  2. Arial Rounded MT Bold
  3. Arial Narrow

Теперь примените к ним жирный шрифт. Вы увидите изменения №2 и №3, но не №1.

Однако с №3 изменится происходит, чем два других - все вместе разные шрифты применяется. А именно ARIALNB .TTF ('NB' добавлен, то есть Arial Narrow Жирным шрифтом ) вместо ARIALN.TTF ('N' прилагается, то есть Arial Narrow ). Так в случае этого шрифта жирный шрифт не фактически применяется.

Вернуться к списку. №1 не меняется, но №2 меняется. Вес №1 - «Черный», а №2 - «Жирный». Если вы возьмете жирную версию # 3, ARIALNB.TTF , и примените к ней жирный шрифт, она будет действовать как # 1 - она ​​не изменится. Но у него такой же вес, как у №2, у «Полужирный».

Другими словами, два жирных шрифта (Arial Rounded MT Bold и Arrow Narrow Bold), но только Arial Rounded MT Bold имеет более жирный шрифт. В случае с Arial Black, у него нет жирного шрифта, но к нему все еще не добавлен жирный шрифт.

Вот как это выглядит: alt text

Интересно, что WPF не демонстрирует этого поведения (т.е. добавляет жирный шрифт), но Silverlight делает:

WPF (обратите внимание, что FontFamily - «Arial Rounded MT»):

<StackPanel Orientation="Vertical">
    <TextBlock FontSize="24" Text="Arial Rounded MT Bold" FontFamily="Arial Rounded MT"/>
    <TextBlock FontSize="24" Text="Arial Rounded MT Bold" FontWeight="Black" FontFamily="Arial Rounded MT"/>
</StackPanel>

Silverlight ( Обратите внимание, что FontFamily - «Arial Rounded MT Bold»):

<StackPanel Orientation="Vertical">
    <TextBlock  FontSize="24" FontFamily="Arial Rounded MT Bold" >Arial Rounded MT Bold</TextBlock>
    <TextBlock  FontSize="24" FontFamily="Arial Rounded MT Bold" FontWeight="Bold" >Arial Rounded MT Bold</TextBlock>
</StackPanel>

Возникает вопрос: Какое свойство файла шрифта указывает программе добавлять жирный шрифт или нет? Я ищу флаг или свойство в файле шрифта, которое подскажет мне эту логику.

Вот список других шрифтов, для которых применение «Полужирного» не имеет никакого эффекта: - Adobe Caslon Pro Bold - Adobe Garamond Pro Bold - Энди - Arial Black - Bell Gothic Std Черный - Bell Gothic Light Черный - Berlin Sans FB Demi - Blackoak Std - Бодони МТ Черный - Charlemagne Std - Миньон Про Конд - Муар ExtraBold - Myriad Pro Light - Тополь стандарт - Prestige Elite Std. - Роквелл экстра жирный - Скрипт MT Bold - Segoe WP черный - Tekton Pro Ext - Стандартный трафарет

7
задан Todd Main 9 September 2010 в 05:39
поделиться