Jump to content

FONTMETRICS: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
== FONTMETRICS ==
Font-metrics structure. This structure is returned to applications on the ''GpiQueryFonts'' and ''GpiQueryFontMetrics'' calls and conveys information from the font creator to the application.
 
Font-metrics structure. This structure is returned to applications on the
[[OS2 API:GpiQueryFonts|GpiQueryFonts]] and [[OS2 API:GpiQueryFontMetrics|GpiQueryFontMetrics]] calls and conveys information from the font creator to the application.


=== Type ===
=== Type ===
 
  [[CHAR]]    szFamilyname[ [[FACESIZE]] ]
  [[OS2 API:DataType:CHAR|CHAR]]    szFamilyname[ [[OS2 API:Constant:FACESIZE|FACESIZE]] ]
  CHAR    szFacename[ FACESIZE ]
  [[OS2 API:DataType:CHAR|CHAR]]   szFacename[ [[OS2 API:Constant:FACESIZE|FACESIZE]] ]
  [[USHORT]]  idRegistry
  [[OS2 API:DataType:USHORT|USHORT]]  idRegistry
  USHORT  usCodePage
  [[OS2 API:DataType:USHORT|USHORT]] usCodePage
  [[LONG]]    lEmHeight
  [[OS2 API:DataType:LONG|LONG]]    lEmHeight
  LONG    lXHeight
  [[OS2 API:DataType:LONG|LONG]]   lXHeight
  LONG    lMaxAscender
  [[OS2 API:DataType:LONG|LONG]]   lMaxAscender
  LONG    lMaxDescender
  [[OS2 API:DataType:LONG|LONG]]   lMaxDescender
  LONG    lLowerCaseAscent
  [[OS2 API:DataType:LONG|LONG]]   lLowerCaseAscent
  LONG    lLowerCaseDescent
  [[OS2 API:DataType:LONG|LONG]]   lLowerCaseDescent
  LONG    lInternalLeading
  [[OS2 API:DataType:LONG|LONG]]   lInternalLeading
  LONG    lExternalLeading
  [[OS2 API:DataType:LONG|LONG]]   lExternalLeading
  LONG    lAveCharWidth
  [[OS2 API:DataType:LONG|LONG]]   lAveCharWidth
  LONG    lMaxCharInc
  [[OS2 API:DataType:LONG|LONG]]   lMaxCharInc
  LONG    lEmInc
  [[OS2 API:DataType:LONG|LONG]]   lEmInc
  LONG    lMaxBaselineExt
  [[OS2 API:DataType:LONG|LONG]]   lMaxBaselineExt
  [[SHORT]]  sCharSlope
  [[OS2 API:DataType:SHORT|SHORT]]  sCharSlope
  SHORT  sInlineDir
  [[OS2 API:DataType:SHORT|SHORT]]   sInlineDir
  SHORT  sCharRot
  [[OS2 API:DataType:SHORT|SHORT]]   sCharRot
  USHORT  usWeightClass
  [[OS2 API:DataType:USHORT|USHORT]] usWeightClass
  USHORT  usWidthClass
  [[OS2 API:DataType:USHORT|USHORT]] usWidthClass
  SHORT  sXDeviceRes
  [[OS2 API:DataType:SHORT|SHORT]]   sXDeviceRes
  SHORT  sYDeviceRes
  [[OS2 API:DataType:SHORT|SHORT]]   sYDeviceRes
  SHORT  sFirstChar
  [[OS2 API:DataType:SHORT|SHORT]]   sFirstChar
  SHORT  sLastChar
  [[OS2 API:DataType:SHORT|SHORT]]   sLastChar
  SHORT  sDefaultChar
  [[OS2 API:DataType:SHORT|SHORT]]   sDefaultChar
  SHORT  sBreakChar
  [[OS2 API:DataType:SHORT|SHORT]]   sBreakChar
  SHORT  sNominalPointSize
  [[OS2 API:DataType:SHORT|SHORT]]   sNominalPointSize
  SHORT  sMinimumPointSize
  [[OS2 API:DataType:SHORT|SHORT]]   sMinimumPointSize
  SHORT  sMaximumPointSize
  [[OS2 API:DataType:SHORT|SHORT]]   sMaximumPointSize
  USHORT  fsType
  [[OS2 API:DataType:USHORT|USHORT]] fsType
  USHORT  fsDefn
  [[OS2 API:DataType:USHORT|USHORT]] fsDefn
  USHORT  fsSelection
  [[OS2 API:DataType:USHORT|USHORT]] fsSelection
  USHORT  fsCapabilities
  [[OS2 API:DataType:USHORT|USHORT]] fsCapabilities
  [[LONG]]    lSubscriptXSize
  [[OS2 API:DataType:LONG|LONG]]    lSubscriptXSize
  LONG    lSubscriptYSize
  [[OS2 API:DataType:LONG|LONG]]   lSubscriptYSize
  LONG    lSubscriptXOffset
  [[OS2 API:DataType:LONG|LONG]]   lSubscriptXOffset
  LONG    lSubscriptYOffset
  [[OS2 API:DataType:LONG|LONG]]   lSubscriptYOffset
  LONG    lSuperscriptXSize
  [[OS2 API:DataType:LONG|LONG]]   lSuperscriptXSize
  LONG    lSuperscriptYSize
  [[OS2 API:DataType:LONG|LONG]]   lSuperscriptYSize
  LONG    lSuperscriptXOffset
  [[OS2 API:DataType:LONG|LONG]]   lSuperscriptXOffset
  LONG    lSuperscriptYOffset
  [[OS2 API:DataType:LONG|LONG]]   lSuperscriptYOffset
  LONG    lUnderscoreSize
  [[OS2 API:DataType:LONG|LONG]]   lUnderscoreSize
  LONG    lUnderscorePosition
  [[OS2 API:DataType:LONG|LONG]]   lUnderscorePosition
  LONG    lStrikeoutSize
  [[OS2 API:DataType:LONG|LONG]]   lStrikeoutSize
  LONG    lStrikeoutPosition
  [[OS2 API:DataType:LONG|LONG]]   lStrikeoutPosition
  SHORT  sKerningPairs
  [[OS2 API:DataType:SHORT|SHORT]]   sKerningPairs
  SHORT  sFamilyClass
  [[OS2 API:DataType:SHORT|SHORT]]   sFamilyClass
  LONG    lMatch
  [[OS2 API:DataType:LONG|LONG]]   lMatch
  LONG    FamilyNameAtom
  [[OS2 API:DataType:LONG|LONG]]   FamilyNameAtom
  LONG    FaceNameAtom
  [[OS2 API:DataType:LONG|LONG]]   FaceNameAtom
  [[PANOSE]]  panose
  [[OS2 API:DataType:PANOSE|PANOSE]]  panose


==== C Declaration Method ====
==== C Declaration Method ====
typedef struct
typedef struct


=== Fields ===
=== Fields ===
 
;szFamilyname[ [[FACESIZE]] ] :Family name.
szFamilyname[ [[OS2 API:Constant:FACESIZE|FACESIZE]] ] Family name.  
:The family name of the font that describes the basic appearance of the font, for example, Times New Roman. This string is null terminated, and therefore is limited to 31 characters in length. Longer names may be retrieved by using the FamilyNameAtom field to retrieve the full name from the System Atom table.
                          The family name of the font that describes the basic
;szFacename[ FACESIZE ] :Face name.
                          appearance of the font, for example, Times New Roman
:The typeface name that defines the particular font, for example, Times New Roman Bold Italic. This string is null terminated, and therefore is limited to 31 characters in length. Longer names may be retrieved by using the FaceNameAtom field to retrieve the full name from the System Atom table.
                          This string is null terminated, and therefore is
;idRegistry:Registry identifier.
                          limited to 31 characters in length. Longer names may
:The IBM registered number (or zero).
                          be retrieved by using the FamilyNameAtom field to
;usCodePage:Code page.
                          retrieve the full name from the System Atom table.
:Defines the registered code page supported by the font. For example, the original IBM PC code page is 437. A value of 0 implies that the font may be used with any of the OS/2 supported code pages. Where a font contains special symbols for which there is no registered code page, then code page 65400 is used.
 
;lEmHeight:Em height.
szFacename[ [[OS2 API:Constant:FACESIZE|FACESIZE]] ]  Face name.
:The height of the Em square in world coordinate units. This corresponds to the point size for the font.
                          The typeface name that defines the particular font,
;lXHeight:X height.
                          for example, Times New Roman Bold Italic. This string
:The nominal height above the baseline for lowercase characters (ignoring ascenders) in world coordinate units.
                          is null terminated, and therefore is limited to 31
;lMaxAscender:Maximum ascender.
                          characters in length. Longer names may be retrieved
:The maximum height above the baseline reached by any part of any symbol in the font in world coordinate units. This field may exceed lEmHeight.
                          by using the FaceNameAtom field to retrieve the full
;lMaxDescender:Maximum descender.
                          name from the System Atom table.
:The maximum depth below the baseline reached by any part of any symbol in the font in world coordinate units. This field may exceed lEmHeight.
 
;lLowerCaseAscent:Lowercase ascent.
idRegistry               Registry identifier.
:The maximum height above the baseline reached by any part of any lowercase (Latin unaccented "a" through "z") symbol in the font in world coordinate units.
                          The IBM registered number (or zero).
;lLowerCaseDescent:Lowercase descent.
 
:The maximum depth below the baseline reached by any part of any lowercase (Latin unaccented "a" through "z") symbol in the font in world coordinate units.
usCodePage               Code page.
;lInternalLeading:Internal leading.
                          Defines the registered code page supported by the
:The amount of space which, when subtracted from lMaxAscender, gives a font-design dependent, but glyph-set independent, measure of the distance above the baseline that characters extend. This calculation approximates the visual top to a row of characters without actually looking at the characters in the row.
                          font. For example, the original IBM PC code page is
:For optimum results, this field should be used by applications to position the first line of a block of text by subtracting it from lMaxAscender and positioning the baseline that distance below whatever is above the text.
                          437. A value of 0 implies that the font may be used
:This does not guarantee that characters will not overwrite information above them, but does give a font designer's view of where to place the text. Collision should be tested for, and additional space allocated if necessary.
                          with any of the OS/2 supported code pages. Where a
;lExternalLeading:External leading.
                          font contains special symbols for which there is no
:The amount of guaranteed white space advised by the font designer to appear between adjacent rows of text. This value may be zero. The fonts built in to Presentation Manager have zero in this field.
                          registered code page, then code page 65400 is used.
;lAveCharWidth:Average character width.
 
:This is determined by multiplying the width of each lowercase character by a constant, adding the products, and then dividing by 1000. The letters involved in this, plus their constants, are as follows:
lEmHeight               Em height.
:{|
                          The height of the Em square in world coordinate units.
!Letter||Constant
                          This corresponds to the point size for the font.
|-
 
|a||64
lXHeight                 X height.
|-
                          The nominal height above the baseline for lowercase
|b||14
                          characters (ignoring ascenders) in world coordinate
|-
                          units.
|c||27
 
|-
lMaxAscender             Maximum ascender.
|d||35
                          The maximum height above the baseline reached by any
|-
                          part of any symbol in the font in world coordinate
|e||100
                          units. This field may exceed lEmHeight.
|-
 
|f||20
lMaxDescender           Maximum descender.
|-
                          The maximum depth below the baseline reached by any
|g||14
                          part of any symbol in the font in world coordinate
|-
                          units. This field may exceed lEmHeight.
|h||42
 
|-
lLowerCaseAscent         Lowercase ascent.
|i||63
                          The maximum height above the baseline reached by any
|-
                          part of any lowercase (Latin unaccented "a" through
|j||3
                          "z") symbol in the font in world coordinate units.
|-
 
|k||6
lLowerCaseDescent       Lowercase descent.
|-
                          The maximum depth below the baseline reached by any
|l||35
                          part of any lowercase (Latin unaccented "a" through
|-
                          "z") symbol in the font in world coordinate units.
|m||20
 
|-
lInternalLeading         Internal leading.
|n||56
                          The amount of space which, when subtracted from
|-
                          lMaxAscender, gives a font-design dependent, but
|o||56
                          glyph-set independent, measure of the distance above
|-
                          the baseline that characters extend. This calculation
|p||17
                          approximates the visual top to a row of characters
|-
                          without actually looking at the characters in the row.
|q||4
                          For optimum results, this field should be used by
|-
                          applications to position the first line of a block of
|r||49
                          text by subtracting it from lMaxAscender and
|-
                          positioning the baseline that distance below whatever
|s||56
                          is above the text.
|-
                          This does not guarantee that characters will not
|t||71
                          overwrite information above them, but does give a font
|-
                          designer's view of where to place the text. Collision
|u||31
                          should be tested for, and additional space allocated
|-
                          if necessary.
|v||10
 
|-
lExternalLeading         External leading.
|w||18
                          The amount of guaranteed white space advised by the
|-
                          font designer to appear between adjacent rows of text.
|x||3
                          This value may be zero.
|-
                          The fonts built in to Presentation Manager have zero
|y||18
                          in this field.
|-
 
|z||2
lAveCharWidth           Average character width.
|-
                          This is determined by multiplying the width of each
|space||166
                          lowercase character by a constant, adding the
|}
                          products, and then dividing by 1000. The letters
:For fixed pitch fonts, this value will be the same as the (A width + B width + C width) escapement of each character.
                          involved in this, plus their constants, are as
;lMaxCharInc:Maximum character increment.
                          follows:
:The maximum character increment for the font in world coordinate units.
 
;lEmInc:Em increment.
                          Letter   Constant
:The width of the Em square in world coordinate units. This corresponds to the point size of the font. When the horizontal device resolution equals the vertical device resolution this is equal to the em height.
                          a             64  
;lMaxBaselineExt:Maximum baseline extent. The maximum vertical space occupied by the font, in world coordinate units. This is the sum of lMaxAscender and lMaxDescender if both are positive. It is also the sum of lInternalLeading and lEmHeight.
                          b             14  
:One possible type of line spacing can be computed by adding lMaxBaselineExt to lExternalLeading. Such a line spacing, however, would be dependent on the glyph set included in the font. If a new version of the font should be made available, with new glyphs, then it is possible that this value will change because one of the new glyphs has gone above the previous lMaxAscender or below the previous lMaxDescender.
                          c             27  
:More sophisticated applications will base line spacing on the point size (lEmHeight) of the font, which is an invariant of the font, multiplied by some factor (for example, 120%) plus any external leading. This field may exceed lEmHeight.
                          d              35  
;sCharSlope:Character slope.
                          e             100  
:Defines the nominal slope for the characters of a font. The slope is defined in degrees increasing clockwise from the vertical. An italic font is an example of a font with a nonzero slope.
                          f             20  
:Note: The units for this metric are degrees and minutes, encoded as shown in the following example:
                          g             14  
180 degrees 59 minutes would be represented as :
                          h             42  
│  < byte 1  > │  < byte 2  >  │
                          i             63  
│ │ < Minutes > │  < Degrees >  │
                          j              3  
│0│1 1 1 0 1 1  │0 1 0 1 1 0 1 0 0│
                          k             6  
  │  59 min    │  180 degrees  │
                          l             35  
;sInlineDir:Inline direction.
                          m             20  
:The direction in which the characters in the font are designed for viewing. The direction is defined in degrees increasing clockwise from the horizontal (left-to-right). Characters are added to a line of text in the inline direction.
                          n             56  
:Note: The units for this metric are degrees and minutes, encoded as shown in sCharSlope.
                          o             56  
;sCharRot:Character rotation.
                          p             17  
:The rotation of the character glyphs with respect to the baseline, the angle increasing counter clockwise. This is the angle assigned by the font designer.
                          q             4  
:Note: The units for this metric are degrees and minutes, encoded as shown in sCharSlope.
                          r             49  
;usWeightClass:Weight class.
                          s             56  
:Indicates the visual weight (thickness of strokes) of the characters in the font:
                          t             71  
{|class="wikipedia"
                          u             31  
!Value||Description
                          v             10  
|-
                          w             18  
|1||Ultra-light
                          x             3  
|-
                          y             18  
|2||Extra-light
                          z             2  
|-
                          space         166
|3||Light
 
|-
                          For fixed pitch fonts, this value will be the same as
|4||Semi-light
                          the (A width + B width + C width) escapement of each
|-
                          character.
|5||Medium (normal)
 
|-
lMaxCharInc             Maximum character increment.
|6||Semi-bold
                          The maximum character increment for the font in world
|-
                          coordinate units.
|7||Bold
 
|-
lEmInc                   Em increment.
|8||Extra-bold
                          The width of the Em square in world coordinate units.
|-
                          This corresponds to the point size of the font. When
|9||Ultra-bold
                          the horizontal device resolution equals the vertical
|}
                          device resolution this is equal to the em height.  
;usWidthClass:Width class.
 
:Indicates the relative aspect ratio of the characters of the font in relation to the normal aspect ratio for this type of font:
lMaxBaselineExt         Maximum baseline extent.
:{|class="wikitable"
                          The maximum vertical space occupied by the font, in
!Value||Description||% of normal width
                          world coordinate units. This is the sum of
|-
                          lMaxAscender and lMaxDescender if both are positive.
|1||Ultra-condensed||50
                          It is also the sum of lInternalLeading and lEmHeight.
|-
                          One possible type of line spacing can be computed by
|2||Extra-condensed||62.5
                          adding lMaxBaselineExt to lExternalLeading. Such a
|-
                          line spacing, however, would be dependent on the glyph
|3||Condensed||75
                          set included in the font. If a new version of the font
|-
                          should be made available, with new glyphs, then it is
|4||Semi-condensed||87.5
                          possible that this value will change because one of
|-
                          the new glyphs has gone above the previous
|5||Medium (normal)||100
                          lMaxAscender or below the previous lMaxDescender.
|-
                          More sophisticated applications will base line spacing
|6||Semi-expanded||112.5
                          on the point size (lEmHeight) of the font, which is an
|-
                          invariant of the font, multiplied by some factor (for
|7||Expanded||125
                          example, 120%) plus any external leading.
|-
                          This field may exceed lEmHeight.
|8||Extra-expanded||150
 
|-
sCharSlope               Character slope.
|9||Ultra-expanded||200
                          Defines the nominal slope for the characters of a
|}
                          font. The slope is defined in degrees increasing
;sXDeviceRes:X-device resolution.
                          clockwise from the vertical. An italic font is an
:For bit-map fonts this is the resolution in the X direction of the intended target device, measured in pels per inch. For outline fonts this is the number of notional units in the X direction of the Em square, measured in notional units per Em. (Notional units are the units in which the outline is defined.)
                          example of a font with a nonzero slope.
;sYDeviceRes:Y-device resolution.
 
:For bit-map fonts this is the resolution in the Y direction of the intended target device, measured in pels per inch.
                          Note: The units for this metric are degrees and
:For outline fonts this is the number of notional units in the Y direction of the Em square, measured in notional units per Em. (Notional units are the units in which the outline is defined.)
                                minutes, encoded as shown in the following
;sFirstChar:First character.
                                example:
:The code point of the first character in the font.
                         
;sLastChar:Last character.
                                180 degrees 59 minutes would be represented as :
:The code point of the last character in the font, expressed as an offset from sFirstChar.
                                │  < byte 1  > │  < byte 2  >  │
:All code points between the first and last character specified must be supported by the font.
                                │ │ < Minutes > │  < Degrees >  │
;sDefaultChar:Default character.
                                │0│1 1 1 0 1 1  │0 1 0 1 1 0 1 0 0│
:The code point that is used if a code point outside the range supported by the font is used, expressed as an offset from sFirstChar.
                                  │  59 min    │  180 degrees  │
;sBreakChar:Break character.
 
:The code point that represents the "space" or "break" character for this font, expressed as an offset from sFirstChar. For example, if the first character is the space in code page 850, sFirstChar = 32, and sBreakChar = 0.
sInlineDir               Inline direction.
;sNominalPointSize:Nominal point size.
                          The direction in which the characters in the font are
:For a bit-map font, this field contains the height of the font.
                          designed for viewing. The direction is defined in
:For an outline font, this field contains the height intended by the font designer. For example, some fonts are designed for text use in which case a value of 120 (12 point) would probably be placed in this field, whereas other fonts are designed for "display" use ("display" is typographer's terminology for larger sizes). This is not the only size at which the font can be used.
                          degrees increasing clockwise from the horizontal
:Measured in decipoints (a decipoint is 1/720th of an inch).
                          (left-to-right). Characters are added to a line of
;sMinimumPointSize:Minimum point size.
                          text in the inline direction.
:For a bit-map font, this field does not apply. For an outline font, this field contains the minimum height intended by the font designer. Note that this is not a restriction of the size at which the font can be used.
 
:Measured in decipoints (a decipoint is 1/720th of an inch).
                          Note: The units for this metric are degrees and
;sMaximumPointSize:Maximum point size.
                                minutes, encoded as shown in sCharSlope.
:For a bit-map font, this field does not apply.
 
:For an outline font, this field contains the maximum height intended by the font designer. Note that this is not a restriction of the size at which the font can be used.
sCharRot                 Character rotation.
:Measured in decipoints (a decipoint is 1/720th of an inch).
                          The rotation of the character glyphs with respect to
;fsType:Type indicators.
                          the baseline, the
:This field contains the following information:
                          angle increasing counter clockwise. This is the angle
::FM_TYPE_FIXED - Characters in the font have the same fixed width.
                          assigned by the font designer.
::FM_TYPE_LICENSED - Licensed (protected) font.
 
::FM_TYPE_KERNING - Font contains kerning information.
                          Note: The units for this metric are degrees and
::FM_TYPE_64K - Font is larger than 64KB (KB equals 1024 bytes) in size. If the following two bits are false, the font is for single-byte code pages. One of the bits may be set.
                                minutes, encoded as shown in sCharSlope.
::FM_TYPE_DBCS - Font is for double-byte code pages.
 
::FM_TYPE_MBCS - Font is for mixed single- or double-byte code pages.
usWeightClass           Weight class.
::FM_TYPE_FACETRUNC - Font szFacename has been truncated.
                          Indicates the visual weight (thickness of strokes) of
::FM_TYPE_FAMTRUNC - Font szFamilyname has been truncated.
                          the characters in the font:
::FM_TYPE_ATOMS - The System Atom table atom values in FamilyNameAtom and in FaceNameAtom are valid.
 
;fsDefn:Definition indicators.
                          Value   Description
:Contains the following font definition data:
                          1       Ultra-light  
::FM_DEFN_OUTLINE - Font is a vector (outline) font; otherwise, it is a bit-map font.
                          2       Extra-light  
::FM_DEFN_GENERIC - Font is in a format that can be used by the GPI; otherwise, it is a device font.
                          3       Light  
;fsSelection:Selection indicators.
                          4       Semi-light  
:Contains information about the font patterns in the physical font.
                          5       Medium (normal)  
:Note: The flags do not reflect simulations applied to the physical font.
                          6       Semi-bold  
:Possible values are:
                          7       Bold  
::FM_SEL_ITALIC    True indicates that this font is designed as an italic font.
                          8       Extra-bold  
::FM_SEL_UNDERSCORE TRUE indicates that this font is designed with underscores included in each character.
                          9       Ultra-bold
::FM_SEL_NEGATIVE  TRUE indicates that this font is designed with the background and foreground reversed.
 
::FM_SEL_OUTLINE    TRUE indicates that this font is designed with outline (hollow) characters.
usWidthClass             Width class.
::FM_SEL_STRIKEOUT  TRUE indicates that this font is designed with an overstrike through each character.
                          Indicates the relative aspect ratio of the characters
::FM_SEL_BOLD      TRUE indicates that this font is designed with bold characters.
                          of the font in relation to the normal aspect ratio for
::FM_SEL_ISO9241_TESTED This flag indicates that the font has been tested for compliance to ISO 9241. The presence of this flag doesn't indicate whether the font passed or failed, only that it was tested.
                          this type of font:
::Note: While the fonts were primarily tested for meeting the ISO standard, they have also been designed to meet the German standard DIN 66 234. Where the two standards differ, the fonts have been designed to meet the more stringent requirement.
 
;fsCapabilities:Font capabilities.
                          ┌─────┬───────────────┬────────────────────┐
:This attribute applies only to device fonts.
                          │Value│Description    │% of normal width   │
::FM_CAP_NOMIX Characters may not be mixed with graphics.
                          ├─────┼───────────────┼────────────────────┤
::QUALITY - The most significant byte may contain the following numeric value:
                          │1    │Ultra-condensed│50                  │
:::0 Undefined
                          ├─────┼───────────────┼────────────────────┤
:::1 DP quality
                          │2    │Extra-condensed│62.5                │
:::2 DP draft
                          ├─────┼───────────────┼────────────────────┤
:::3 Near Letter Quality
                          │3    │Condensed      │75                  │
:::4 Letter Quality
                          ├─────┼───────────────┼────────────────────┤
;lSubscriptXSize:Subscript x-size.
                          │4    │Semi-condensed │87.5               │
:The horizontal size recommended by the font designer for subscripts for this font in world coordinate units.
                          ├─────┼───────────────┼────────────────────┤
;lSubscriptYSize:Subscript y-size.
                          │5    │Medium (normal)│100                │
:The vertical size recommended by the font designer for subscripts for this font in world coordinate units.
                          ├─────┼───────────────┼────────────────────┤
;lSubscriptXOffset:Subscript x-offset.
                          │6    │Semi-expanded │112.5               │
:The baseline x-offset recommended by the font designer for subscripts for this font in world coordinate units.
                          ├─────┼───────────────┼────────────────────┤
;lSubscriptYOffset:Subscript y-offset.
                          │7    │Expanded      │125                │
:The baseline y-offset recommended by the font designer for subscripts for this font in world coordinate units.
                          ├─────┼───────────────┼────────────────────┤
:Note: Positive numbers indicate an offset below the baseline.
                          │8    │Extra-expanded │150                │
;lSuperscriptXSize:Superscript x-size.
                          ├─────┼───────────────┼────────────────────┤
:The horizontal size recommended by the font designer for superscripts for this font in world coordinate units.
                          │9    │Ultra-expanded │200                │
;lSuperscriptYSize:Superscript y-size.
                          └─────┴───────────────┴────────────────────┘
:The vertical point size recommended by the font designer for superscripts for this font in world coordinate units.
 
;lSuperscriptXOffset:Superscript x-offset.
sXDeviceRes             X-device resolution.
:The baseline x-offset recommended by the font designer for superscripts for this font in world coordinate units.
                          For bit-map fonts this is the resolution in the X
;lSuperscriptYOffset:Superscript y-offset.
                          direction of the intended target device, measured in
:The baseline y-offset recommended by the font designer for superscripts for this font in world coordinate units.
                          pels per inch. For outline fonts this is the number of
;lUnderscoreSize:Underscore size.
                          notional units in the X direction of the Em square,
:The width (thickness) of the underscore stroke in world coordinate units. This describes the actual underscore in the font if FM_SEL_UNDERSCORE is also set. Otherwise it describes what the engine will simulate if underscore is requested in piCreateLogFont.
                          measured in notional units per Em. (Notional units are
;lUnderscorePosition:Underscore position.
                          the units in which the outline is defined.)
:The position of the underscore stroke from the baseline in world coordinate units. This describes the actual underscore in the font if FM_SEL_UNDERSCORE is also set. Otherwise it describes what the engine will simulate if underscore is requested in GpiCreateLogFont.
 
:Note: Positive values indicate an offset below the baseline.
sYDeviceRes             Y-device resolution.
;lStrikeoutSize:Strikeout size.
                          For bit-map fonts this is the resolution in the Y
:The width of the strikeout stroke in world coordinate units. This describes the actual underscore in the font if FM_SEL_STRIKEOUT is also set. Otherwise it describes what the engine will simulate if overstrike is requested in GpiCreateLogFont.
                          direction of the intended target device, measured in
;lStrikeoutPosition:Strikeout position.
                          pels per inch.
:The position of the strikeout stroke relative to the baseline in world coordinate units. This describes the actual underscore in the font if FM_SEL_STRIKEOUT is also set. Otherwise it describes what the engine will simulate if overstrike is requested in GpiCreateLogFont.
                          For outline fonts this is the number of notional units
;sKerningPairs:Kerning pairs.
                          in the Y direction of the Em square, measured in
:The number of kerning pairs in the kerning pair table.
                          notional units per Em. (Notional units are the units
;sFamilyClass:Font family design classification.
                          in which the outline is defined.)
:This value contains a font class and its subclass.
 
;lMatch:Matched font identity. This uniquely identifies the font for a given device and device driver combination. A positive match number signifies that the font is a generic (engine) font while a negative number indicates a device font (a native or downloadable font). This value should not be used to identify a font across system boundaries.
sFirstChar               First character.
;FamilyNameAtom:Font family name atom.
                          The code point of the first character in the font.
:This value contains the atom identifier for the font family name in the System Atom Table.
 
;FaceNameAtom:Font facename atom.
sLastChar               Last character.
:This value contains the atom identifier for the font face name in the System Atom Table.
                          The code point of the last character in the font,
;panose:Panose font descriptor.
                          expressed as an offset from sFirstChar.
:This is the Panose descriptor identifying the visual characteristics of the font.
                          All code points between the first and last character
                          specified must be supported by the font.
 
sDefaultChar             Default character.
                          The code point that is used if a code point outside
                          the range supported by the font is used, expressed as
                          an offset from sFirstChar.
 
sBreakChar               Break character.
                          The code point that represents the "space" or "break"
                          character for this font, expressed as an offset from
                          sFirstChar. For example, if the first character is the
                          space in code page 850, sFirstChar = 32, and
                          sBreakChar = 0.
 
sNominalPointSize       Nominal point size.
                          For a bit-map font, this field contains the height of
                          the font.
                          For an outline font, this field contains the height
                          intended by the font designer. For example, some fonts
                          are designed for text use in which case a value of 120
                          (12 point) would probably be placed in this field,
                          whereas other fonts are designed for "display" use
                          ("display" is typographer's terminology for larger
                          sizes). This is not the only size at which the font
                          can be used.
                          Measured in decipoints (a decipoint is 1/720th of an
                          inch).
 
sMinimumPointSize       Minimum point size.
                          For a bit-map font, this field does not apply. For an
                          outline font, this field contains the minimum height
                          intended by the font designer. Note that this is not a
                          restriction of the size at which the font can be used.
                          Measured in decipoints (a decipoint is 1/720th of an
                          inch).
 
sMaximumPointSize       Maximum point size.
                          For a bit-map font, this field does not apply.
                          For an outline font, this field contains the maximum
                          height intended by the font designer. Note that this
                          is not a restriction of the size at which the font can
                          be used.
                          Measured in decipoints (a decipoint is 1/720th of an
                          inch).
 
fsType                   Type indicators.
                          This field contains the following information:
 
                          FM_TYPE_FIXED     Characters in the font have the same
                                            fixed width.
                          FM_TYPE_LICENSED Licensed (protected) font.
                          FM_TYPE_KERNING   Font contains kerning information.
                          FM_TYPE_64K       Font is larger than 64KB (KB equals
                                            1024 bytes) in size. If the
                                            following two bits are false, the
                                            font is for single-byte code pages.
                                            One of the bits may be set.
                          FM_TYPE_DBCS     Font is for double-byte code pages.
                          FM_TYPE_MBCS     Font is for mixed single- or
                                            double-byte code pages.
                          FM_TYPE_FACETRUNC Font szFacename has been truncated.
                          FM_TYPE_FAMTRUNC Font szFamilyname has been
                                            truncated.
                          FM_TYPE_ATOMS     The System Atom table atom values in
                                            FamilyNameAtom and in
                                            FaceNameAtom are valid.
 
fsDefn                   Definition indicators.
                          Contains the following font definition data:
 
                          FM_DEFN_OUTLINE   Font is a vector (outline) font;
                                            otherwise, it is a bit-map font.
                          FM_DEFN_GENERIC   Font is in a format that can be used
                                            by the GPI; otherwise, it is a
                                            device font.
 
fsSelection             Selection indicators.
                          Contains information about the font patterns in the
                          physical font.
 
                          Note: The flags do not reflect simulations applied to
                                the physical font.
 
                          Possible values are:
                          FM_SEL_ITALIC    True indicates that this font is
                                            designed as an italic font.
                          FM_SEL_UNDERSCORE TRUE indicates that this font is
                                            designed with underscores included
                                            in each character.
                          FM_SEL_NEGATIVE  TRUE indicates that this font is
                                            designed with the background and
                                            foreground reversed.
                          FM_SEL_OUTLINE    TRUE indicates that this font is
                                            designed with outline (hollow)
                                            characters.
                          FM_SEL_STRIKEOUT  TRUE indicates that this font is
                                            designed with an overstrike through
                                            each character.
                          FM_SEL_BOLD      TRUE indicates that this font is
                                            designed with bold characters.
                          FM_SEL_ISO9241_TESTED This flag indicates that the
                                            font has been tested for
                                            compliance to ISO 9241. The presence
                                            of this flag doesn't indicate
                                            whether the font passed or failed,
                                            only that it was tested.
                                      Note: While the fonts were primarily
                                            tested for meeting the ISO standard,
                                            they have also been designed to meet
                                            the German standard DIN 66 234.
                                            Where the two standards differ, the
                                            fonts have been designed to meet the
                                            more stringent requirement.
 
fsCapabilities           Font capabilities.
                          This attribute applies only to device fonts.
                          FM_CAP_NOMIX     Characters may not be mixed with
                                            graphics.
                          QUALITY           The most significant byte may
                                            contain the following numeric value:
                                            0 Undefined  
                                            1 DP quality  
                                            2 DP draft  
                                            3 Near Letter Quality  
                                            4 Letter Quality
 
lSubscriptXSize         Subscript x-size.
                          The horizontal size recommended by the font designer
                          for subscripts for this font in world coordinate
                          units.
 
lSubscriptYSize         Subscript y-size.
                          The vertical size recommended by the font designer for
                          subscripts for this font in world coordinate units.
 
lSubscriptXOffset       Subscript x-offset.
                          The baseline x-offset recommended by the font designer
                          for subscripts for this font in world coordinate
                          units.
 
lSubscriptYOffset       Subscript y-offset.
                          The baseline y-offset recommended by the font designer
                          for subscripts for this font in world coordinate
                          units.
 
                          Note: Positive numbers indicate an offset below the
                                baseline.
 
lSuperscriptXSize       Superscript x-size.
                          The horizontal size recommended by the font designer
                          for superscripts for this font in world coordinate
                          units.
 
lSuperscriptYSize       Superscript y-size.
                          The vertical point size recommended by the font
                          designer for superscripts for this font in world
                          coordinate units.
 
lSuperscriptXOffset     Superscript x-offset.
                          The baseline x-offset recommended by the font designer
                          for superscripts for this font in world coordinate
                          units.
 
lSuperscriptYOffset     Superscript y-offset.
                          The baseline y-offset recommended by the font designer
                          for superscripts for this font in world coordinate
                          units.
 
lUnderscoreSize         Underscore size.
                          The width (thickness) of the underscore stroke in
                          world coordinate units. This describes the actual
                          underscore in the font if FM_SEL_UNDERSCORE is
                          also set. Otherwise it describes what the engine will
                          simulate if underscore is requested in                        
                          piCreateLogFont.
 
lUnderscorePosition     Underscore position.
                          The position of the underscore stroke from the
                          baseline in world
                          coordinate units. This describes the actual underscore
                          in the font if FM_SEL_UNDERSCORE is also set.
                          Otherwise it describes what the engine will simulate
                          if underscore is requested in GpiCreateLogFont.
 
                          Note: Positive values indicate an offset below the
                                baseline.
 
lStrikeoutSize           Strikeout size.
                          The width of the strikeout stroke in world coordinate
                          units. This describes the actual underscore in the
                          font if FM_SEL_STRIKEOUT is also set. Otherwise it
                          describes what the engine will simulate if overstrike
                          is requested in GpiCreateLogFont.
 
lStrikeoutPosition       Strikeout position.
                          The position of the strikeout stroke relative to the
                          baseline in world coordinate units. This describes the
                          actual underscore in the font if FM_SEL_STRIKEOUT is
                          also set. Otherwise it describes what the engine will
                          simulate if overstrike is requested in
                          GpiCreateLogFont.
 
sKerningPairs           Kerning pairs.
                          The number of kerning pairs in the kerning pair table.
 
sFamilyClass             Font family design classification.
                          This value contains a font class and its subclass.
 
lMatch                   Matched font identity.
                          This uniquely identifies the font for a given device
                          and device driver combination. A positive match number
                          signifies that the font is a generic (engine) font
                          while a negative number indicates a device font (a
                          native or downloadable font). This value should not be
                          used to identify a font across system boundaries.
 
FamilyNameAtom           Font family name atom.
                          This value contains the atom identifier for the font
                          family name in the System Atom Table.
 
FaceNameAtom             Font facename atom.
                          This value contains the atom identifier for the font
                          face name in the System Atom Table.
 
panose                  Panose font descriptor.
                          This is the Panose descriptor identifying the visual
                          characteristics of the font.
 
 
[[OS2_API | Back to OS/2 API]]
 


[[Category:The OS/2 API Project]]
[[Category:PM Data type]]

Latest revision as of 08:55, 12 October 2022

Font-metrics structure. This structure is returned to applications on the GpiQueryFonts and GpiQueryFontMetrics calls and conveys information from the font creator to the application.

Type

CHAR    szFamilyname[ FACESIZE ]
CHAR    szFacename[ FACESIZE ]
USHORT  idRegistry
USHORT  usCodePage
LONG    lEmHeight
LONG    lXHeight
LONG    lMaxAscender
LONG    lMaxDescender
LONG    lLowerCaseAscent
LONG    lLowerCaseDescent
LONG    lInternalLeading
LONG    lExternalLeading
LONG    lAveCharWidth
LONG    lMaxCharInc
LONG    lEmInc
LONG    lMaxBaselineExt
SHORT   sCharSlope
SHORT   sInlineDir
SHORT   sCharRot
USHORT  usWeightClass
USHORT  usWidthClass
SHORT   sXDeviceRes
SHORT   sYDeviceRes
SHORT   sFirstChar
SHORT   sLastChar
SHORT   sDefaultChar
SHORT   sBreakChar
SHORT   sNominalPointSize
SHORT   sMinimumPointSize
SHORT   sMaximumPointSize
USHORT  fsType
USHORT  fsDefn
USHORT  fsSelection
USHORT  fsCapabilities
LONG    lSubscriptXSize
LONG    lSubscriptYSize
LONG    lSubscriptXOffset
LONG    lSubscriptYOffset
LONG    lSuperscriptXSize
LONG    lSuperscriptYSize
LONG    lSuperscriptXOffset
LONG    lSuperscriptYOffset
LONG    lUnderscoreSize
LONG    lUnderscorePosition
LONG    lStrikeoutSize
LONG    lStrikeoutPosition
SHORT   sKerningPairs
SHORT   sFamilyClass
LONG    lMatch
LONG    FamilyNameAtom
LONG    FaceNameAtom
PANOSE  panose

C Declaration Method

typedef struct

Fields

szFamilyname[ FACESIZE ]
Family name.
The family name of the font that describes the basic appearance of the font, for example, Times New Roman. This string is null terminated, and therefore is limited to 31 characters in length. Longer names may be retrieved by using the FamilyNameAtom field to retrieve the full name from the System Atom table.
szFacename[ FACESIZE ]
Face name.
The typeface name that defines the particular font, for example, Times New Roman Bold Italic. This string is null terminated, and therefore is limited to 31 characters in length. Longer names may be retrieved by using the FaceNameAtom field to retrieve the full name from the System Atom table.
idRegistry
Registry identifier.
The IBM registered number (or zero).
usCodePage
Code page.
Defines the registered code page supported by the font. For example, the original IBM PC code page is 437. A value of 0 implies that the font may be used with any of the OS/2 supported code pages. Where a font contains special symbols for which there is no registered code page, then code page 65400 is used.
lEmHeight
Em height.
The height of the Em square in world coordinate units. This corresponds to the point size for the font.
lXHeight
X height.
The nominal height above the baseline for lowercase characters (ignoring ascenders) in world coordinate units.
lMaxAscender
Maximum ascender.
The maximum height above the baseline reached by any part of any symbol in the font in world coordinate units. This field may exceed lEmHeight.
lMaxDescender
Maximum descender.
The maximum depth below the baseline reached by any part of any symbol in the font in world coordinate units. This field may exceed lEmHeight.
lLowerCaseAscent
Lowercase ascent.
The maximum height above the baseline reached by any part of any lowercase (Latin unaccented "a" through "z") symbol in the font in world coordinate units.
lLowerCaseDescent
Lowercase descent.
The maximum depth below the baseline reached by any part of any lowercase (Latin unaccented "a" through "z") symbol in the font in world coordinate units.
lInternalLeading
Internal leading.
The amount of space which, when subtracted from lMaxAscender, gives a font-design dependent, but glyph-set independent, measure of the distance above the baseline that characters extend. This calculation approximates the visual top to a row of characters without actually looking at the characters in the row.
For optimum results, this field should be used by applications to position the first line of a block of text by subtracting it from lMaxAscender and positioning the baseline that distance below whatever is above the text.
This does not guarantee that characters will not overwrite information above them, but does give a font designer's view of where to place the text. Collision should be tested for, and additional space allocated if necessary.
lExternalLeading
External leading.
The amount of guaranteed white space advised by the font designer to appear between adjacent rows of text. This value may be zero. The fonts built in to Presentation Manager have zero in this field.
lAveCharWidth
Average character width.
This is determined by multiplying the width of each lowercase character by a constant, adding the products, and then dividing by 1000. The letters involved in this, plus their constants, are as follows:
Letter Constant
a 64
b 14
c 27
d 35
e 100
f 20
g 14
h 42
i 63
j 3
k 6
l 35
m 20
n 56
o 56
p 17
q 4
r 49
s 56
t 71
u 31
v 10
w 18
x 3
y 18
z 2
space 166
For fixed pitch fonts, this value will be the same as the (A width + B width + C width) escapement of each character.
lMaxCharInc
Maximum character increment.
The maximum character increment for the font in world coordinate units.
lEmInc
Em increment.
The width of the Em square in world coordinate units. This corresponds to the point size of the font. When the horizontal device resolution equals the vertical device resolution this is equal to the em height.
lMaxBaselineExt
Maximum baseline extent. The maximum vertical space occupied by the font, in world coordinate units. This is the sum of lMaxAscender and lMaxDescender if both are positive. It is also the sum of lInternalLeading and lEmHeight.
One possible type of line spacing can be computed by adding lMaxBaselineExt to lExternalLeading. Such a line spacing, however, would be dependent on the glyph set included in the font. If a new version of the font should be made available, with new glyphs, then it is possible that this value will change because one of the new glyphs has gone above the previous lMaxAscender or below the previous lMaxDescender.
More sophisticated applications will base line spacing on the point size (lEmHeight) of the font, which is an invariant of the font, multiplied by some factor (for example, 120%) plus any external leading. This field may exceed lEmHeight.
sCharSlope
Character slope.
Defines the nominal slope for the characters of a font. The slope is defined in degrees increasing clockwise from the vertical. An italic font is an example of a font with a nonzero slope.
Note: The units for this metric are degrees and minutes, encoded as shown in the following example:
180 degrees 59 minutes would be represented as :
│   < byte 1  > │   < byte 2   >  │
│ │ < Minutes > │   < Degrees >   │
│0│1 1 1 0 1 1  │0 1 0 1 1 0 1 0 0│
  │  59 min     │   180 degrees   │
sInlineDir
Inline direction.
The direction in which the characters in the font are designed for viewing. The direction is defined in degrees increasing clockwise from the horizontal (left-to-right). Characters are added to a line of text in the inline direction.
Note: The units for this metric are degrees and minutes, encoded as shown in sCharSlope.
sCharRot
Character rotation.
The rotation of the character glyphs with respect to the baseline, the angle increasing counter clockwise. This is the angle assigned by the font designer.
Note: The units for this metric are degrees and minutes, encoded as shown in sCharSlope.
usWeightClass
Weight class.
Indicates the visual weight (thickness of strokes) of the characters in the font:
Value Description
1 Ultra-light
2 Extra-light
3 Light
4 Semi-light
5 Medium (normal)
6 Semi-bold
7 Bold
8 Extra-bold
9 Ultra-bold
usWidthClass
Width class.
Indicates the relative aspect ratio of the characters of the font in relation to the normal aspect ratio for this type of font:
Value Description % of normal width
1 Ultra-condensed 50
2 Extra-condensed 62.5
3 Condensed 75
4 Semi-condensed 87.5
5 Medium (normal) 100
6 Semi-expanded 112.5
7 Expanded 125
8 Extra-expanded 150
9 Ultra-expanded 200
sXDeviceRes
X-device resolution.
For bit-map fonts this is the resolution in the X direction of the intended target device, measured in pels per inch. For outline fonts this is the number of notional units in the X direction of the Em square, measured in notional units per Em. (Notional units are the units in which the outline is defined.)
sYDeviceRes
Y-device resolution.
For bit-map fonts this is the resolution in the Y direction of the intended target device, measured in pels per inch.
For outline fonts this is the number of notional units in the Y direction of the Em square, measured in notional units per Em. (Notional units are the units in which the outline is defined.)
sFirstChar
First character.
The code point of the first character in the font.
sLastChar
Last character.
The code point of the last character in the font, expressed as an offset from sFirstChar.
All code points between the first and last character specified must be supported by the font.
sDefaultChar
Default character.
The code point that is used if a code point outside the range supported by the font is used, expressed as an offset from sFirstChar.
sBreakChar
Break character.
The code point that represents the "space" or "break" character for this font, expressed as an offset from sFirstChar. For example, if the first character is the space in code page 850, sFirstChar = 32, and sBreakChar = 0.
sNominalPointSize
Nominal point size.
For a bit-map font, this field contains the height of the font.
For an outline font, this field contains the height intended by the font designer. For example, some fonts are designed for text use in which case a value of 120 (12 point) would probably be placed in this field, whereas other fonts are designed for "display" use ("display" is typographer's terminology for larger sizes). This is not the only size at which the font can be used.
Measured in decipoints (a decipoint is 1/720th of an inch).
sMinimumPointSize
Minimum point size.
For a bit-map font, this field does not apply. For an outline font, this field contains the minimum height intended by the font designer. Note that this is not a restriction of the size at which the font can be used.
Measured in decipoints (a decipoint is 1/720th of an inch).
sMaximumPointSize
Maximum point size.
For a bit-map font, this field does not apply.
For an outline font, this field contains the maximum height intended by the font designer. Note that this is not a restriction of the size at which the font can be used.
Measured in decipoints (a decipoint is 1/720th of an inch).
fsType
Type indicators.
This field contains the following information:
FM_TYPE_FIXED - Characters in the font have the same fixed width.
FM_TYPE_LICENSED - Licensed (protected) font.
FM_TYPE_KERNING - Font contains kerning information.
FM_TYPE_64K - Font is larger than 64KB (KB equals 1024 bytes) in size. If the following two bits are false, the font is for single-byte code pages. One of the bits may be set.
FM_TYPE_DBCS - Font is for double-byte code pages.
FM_TYPE_MBCS - Font is for mixed single- or double-byte code pages.
FM_TYPE_FACETRUNC - Font szFacename has been truncated.
FM_TYPE_FAMTRUNC - Font szFamilyname has been truncated.
FM_TYPE_ATOMS - The System Atom table atom values in FamilyNameAtom and in FaceNameAtom are valid.
fsDefn
Definition indicators.
Contains the following font definition data:
FM_DEFN_OUTLINE - Font is a vector (outline) font; otherwise, it is a bit-map font.
FM_DEFN_GENERIC - Font is in a format that can be used by the GPI; otherwise, it is a device font.
fsSelection
Selection indicators.
Contains information about the font patterns in the physical font.
Note: The flags do not reflect simulations applied to the physical font.
Possible values are:
FM_SEL_ITALIC True indicates that this font is designed as an italic font.
FM_SEL_UNDERSCORE TRUE indicates that this font is designed with underscores included in each character.
FM_SEL_NEGATIVE TRUE indicates that this font is designed with the background and foreground reversed.
FM_SEL_OUTLINE TRUE indicates that this font is designed with outline (hollow) characters.
FM_SEL_STRIKEOUT TRUE indicates that this font is designed with an overstrike through each character.
FM_SEL_BOLD TRUE indicates that this font is designed with bold characters.
FM_SEL_ISO9241_TESTED This flag indicates that the font has been tested for compliance to ISO 9241. The presence of this flag doesn't indicate whether the font passed or failed, only that it was tested.
Note: While the fonts were primarily tested for meeting the ISO standard, they have also been designed to meet the German standard DIN 66 234. Where the two standards differ, the fonts have been designed to meet the more stringent requirement.
fsCapabilities
Font capabilities.
This attribute applies only to device fonts.
FM_CAP_NOMIX Characters may not be mixed with graphics.
QUALITY - The most significant byte may contain the following numeric value:
0 Undefined
1 DP quality
2 DP draft
3 Near Letter Quality
4 Letter Quality
lSubscriptXSize
Subscript x-size.
The horizontal size recommended by the font designer for subscripts for this font in world coordinate units.
lSubscriptYSize
Subscript y-size.
The vertical size recommended by the font designer for subscripts for this font in world coordinate units.
lSubscriptXOffset
Subscript x-offset.
The baseline x-offset recommended by the font designer for subscripts for this font in world coordinate units.
lSubscriptYOffset
Subscript y-offset.
The baseline y-offset recommended by the font designer for subscripts for this font in world coordinate units.
Note: Positive numbers indicate an offset below the baseline.
lSuperscriptXSize
Superscript x-size.
The horizontal size recommended by the font designer for superscripts for this font in world coordinate units.
lSuperscriptYSize
Superscript y-size.
The vertical point size recommended by the font designer for superscripts for this font in world coordinate units.
lSuperscriptXOffset
Superscript x-offset.
The baseline x-offset recommended by the font designer for superscripts for this font in world coordinate units.
lSuperscriptYOffset
Superscript y-offset.
The baseline y-offset recommended by the font designer for superscripts for this font in world coordinate units.
lUnderscoreSize
Underscore size.
The width (thickness) of the underscore stroke in world coordinate units. This describes the actual underscore in the font if FM_SEL_UNDERSCORE is also set. Otherwise it describes what the engine will simulate if underscore is requested in piCreateLogFont.
lUnderscorePosition
Underscore position.
The position of the underscore stroke from the baseline in world coordinate units. This describes the actual underscore in the font if FM_SEL_UNDERSCORE is also set. Otherwise it describes what the engine will simulate if underscore is requested in GpiCreateLogFont.
Note: Positive values indicate an offset below the baseline.
lStrikeoutSize
Strikeout size.
The width of the strikeout stroke in world coordinate units. This describes the actual underscore in the font if FM_SEL_STRIKEOUT is also set. Otherwise it describes what the engine will simulate if overstrike is requested in GpiCreateLogFont.
lStrikeoutPosition
Strikeout position.
The position of the strikeout stroke relative to the baseline in world coordinate units. This describes the actual underscore in the font if FM_SEL_STRIKEOUT is also set. Otherwise it describes what the engine will simulate if overstrike is requested in GpiCreateLogFont.
sKerningPairs
Kerning pairs.
The number of kerning pairs in the kerning pair table.
sFamilyClass
Font family design classification.
This value contains a font class and its subclass.
lMatch
Matched font identity. This uniquely identifies the font for a given device and device driver combination. A positive match number signifies that the font is a generic (engine) font while a negative number indicates a device font (a native or downloadable font). This value should not be used to identify a font across system boundaries.
FamilyNameAtom
Font family name atom.
This value contains the atom identifier for the font family name in the System Atom Table.
FaceNameAtom
Font facename atom.
This value contains the atom identifier for the font face name in the System Atom Table.
panose
Panose font descriptor.
This is the Panose descriptor identifying the visual characteristics of the font.