Jump to content

FONTMETRICS: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
No edit summary
Line 1: Line 1:
== FONTMETRICS ==
== 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.
                          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
                           Letter    Constant
                           a              64  
                           a              64  
Line 181: Line 116:
                           z              2  
                           z              2  
                           space          166
                           space          166
 
:For fixed pitch fonts, this value will be the same as the (A width + B width + C width) escapement of each character.
                          For fixed pitch fonts, this value will be the same as
;lMaxCharInc:Maximum character increment.
                          the (A width + B width + C width) escapement of each
:The maximum character increment for the font in world coordinate units.
                          character.
;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.
lMaxCharInc             Maximum character increment.
;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.
                          The maximum character increment for the font in world
: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.
                          coordinate units.
: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.
lEmInc                   Em increment.
: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.
                          The width of the Em square in world coordinate units.
:Note:  The units for this metric are degrees and minutes, encoded as shown in the following example:
                          This corresponds to the point size of the font. When
180 degrees 59 minutes would be represented as :
                          the horizontal device resolution equals the vertical
│  < byte 1  > │  < byte 2  >  │
                          device resolution this is equal to the em height.  
│ │ < Minutes > │  < Degrees >  │
 
│0│1 1 1 0 1 1  │0 1 0 1 1 0 1 0 0│
lMaxBaselineExt         Maximum baseline extent.
  │  59 min    │  180 degrees  │
                          The maximum vertical space occupied by the font, in
;sInlineDir:Inline direction.
                          world coordinate units. This is the sum of
: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.
                          lMaxAscender and lMaxDescender if both are positive.
:Note:  The units for this metric are degrees and minutes, encoded as shown in sCharSlope.
                          It is also the sum of lInternalLeading and lEmHeight.
;sCharRot:Character rotation.
                          One possible type of line spacing can be computed by
: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.
                          adding lMaxBaselineExt to lExternalLeading. Such a
:Note: The units for this metric are degrees and minutes, encoded as shown in sCharSlope.
                          line spacing, however, would be dependent on the glyph
;usWeightClass:Weight class.
                          set included in the font. If a new version of the font
:Indicates the visual weight (thickness of strokes) of the characters in 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
                           Value  Description
                           1      Ultra-light  
                           1      Ultra-light  
Line 264: Line 150:
                           8      Extra-bold  
                           8      Extra-bold  
                           9      Ultra-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.


usWidthClass            Width class.
[[Category:Data type]]
                          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.
 
 
[[OS2_API | Back to OS/2 API]]
 
 
[[Category:The OS/2 API Project]]

Revision as of 16:26, 3 November 2016

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.

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.