首页 文章

字体文件中的哪个属性使程序决定模拟粗体?

提问于
浏览
7

我正在寻找字体文件中的属性(来自WPF的 System.Windows.Media.Fonts TypefaceGlyphTypeface )或直接访问.ttf / .otf文件,这将允许我确定Windows中的Write / WordPad等程序是否会将Bold应用于字体 . 基本上,一些具有Bold属性的字体仍将获得额外的粗体,并且有些人试图发现用于做出此决定的逻辑是什么 .

若要手动查看此内容,请将以下内容复制并粘贴到“写入/写字板”(或OOo的Writer或MS Word或...)中,并将每行的字体更改为其名称(即将Arial Black应用于Arial Black)

  • Arial Black

  • Arial Rounded MT Bold

  • Arial Narrow

现在应用粗体 . 你会看到#2和#3发生变化,但不会变成#1 .

虽然#3虽然发生了与其他两种不同的东西 - 正在应用不同的字体 . 即ARIALNB .TTF(附加'NB',即Arial Narrow Bold)代替ARIALN.TTF(附加'N',即Arial Narrow) . 因此,对于此字体,实际上并未应用粗体 .

回到列表 . #1没有't change, but #2 does. #1'的重量是"Black"而#2的重量是"Bold" . 如果您使用#3,ARIALNB.TTF的粗体版本并对其应用粗体,它将表现为#1 - 它不会改变 . 但它具有与#2相同的重量,即"Bold"的重量 .

换句话说,两个是粗体(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>

回答的问题是:字体文件的哪些属性告诉程序添加更多粗体?我在字体文件中寻找一个标志或属性来告诉我这个逻辑 .

这里是应用"Bold"无效的其他字体列表: - Adobe Caslon Pro Bold - Adobe Garamond Pro Bold - Andy - Arial Black - Bell Gothic Std Black - Bell Gothic Light Black - 柏林Sans FB Demi - Blackoak Std - Bodoni MT Black - Charlemagne Std - Minion Pro Cond - Moire ExtraBold - Myriad Pro Light - Poplar Std - Prestige Elite Std - Rockwell Extra Bold - Script MT Bold - Segoe WP Black - Tekton Pro Ext - Stencil Std

1 回答

  • 5

    通过大量的试验,我已经弄明白了 . 从OS/2表中,大多数程序会查看2个值:

    • 如果 usWeightClass 的值为549或更低,则字体将更加粗体 .

    • 如果 fsSelection 设置了第5位,则无论 usWeightClass (上面的#1)中的值如何,它都不会变得更加粗体 .

相关问题