diff options
Diffstat (limited to 'Build/source/texk/web2c/xetexdir/MathTable.h')
-rw-r--r-- | Build/source/texk/web2c/xetexdir/MathTable.h | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/xetexdir/MathTable.h b/Build/source/texk/web2c/xetexdir/MathTable.h new file mode 100644 index 00000000000..1c27a67fee0 --- /dev/null +++ b/Build/source/texk/web2c/xetexdir/MathTable.h @@ -0,0 +1,219 @@ +/****************************************************************************\ + Part of the XeTeX typesetting system + copyright (c) 1994-2006 by SIL International + written by Jonathan Kew + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL SIL INTERNATIONAL BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of SIL International +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written +authorization from SIL International. +\****************************************************************************/ + +#ifndef __MATHTABLE_H__ +#define __MATHTABLE_H__ + +#include "OpenTypeTables.h" + +typedef struct { + le_int16 value; + le_uint16 deviceTable; +} MathValueRecord; + +typedef struct { + le_uint32 version; + le_uint16 mathConstants; + le_uint16 mathGlyphInfo; + le_uint16 mathVariants; +} MathTableHeader; + +typedef struct { + le_uint16 scriptPercentScaleDown; + le_uint16 scriptScriptPercentScaleDown; + le_uint16 delimitedSubFormulaMinHeight; + le_uint16 displayOperatorMinHeight; + MathValueRecord mathLeading; + MathValueRecord axisHeight; + MathValueRecord accentBaseHeight; + MathValueRecord flattenedAccentBaseHeight; + MathValueRecord subscriptShiftDown; + MathValueRecord subscriptTopMax; + MathValueRecord subscriptBaselineDropMin; + MathValueRecord superscriptShiftUp; + MathValueRecord superscriptShiftUpCramped; + MathValueRecord superscriptBottomMin; + MathValueRecord superscriptBaselineDropMax; + MathValueRecord subSuperscriptGapMin; + MathValueRecord superscriptBottomMaxWithSubscript; + MathValueRecord spaceAfterScript; + MathValueRecord upperLimitGapMin; + MathValueRecord upperLimitBaselineRiseMin; + MathValueRecord lowerLimitGapMin; + MathValueRecord lowerLimitBaselineDropMin; + MathValueRecord stackTopShiftUp; + MathValueRecord stackTopDisplayStyleShiftUp; + MathValueRecord stackBottomShiftDown; + MathValueRecord stackBottomDisplayStyleShiftDown; + MathValueRecord stackGapMin; + MathValueRecord stackDisplayStyleGapMin; + MathValueRecord stretchStackTopShiftUp; + MathValueRecord stretchStackBottomShiftDown; + MathValueRecord stretchStackGapAboveMin; + MathValueRecord stretchStackGapBelowMin; + MathValueRecord fractionNumeratorShiftUp; + MathValueRecord fractionNumeratorDisplayStyleShiftUp; + MathValueRecord fractionDenominatorShiftDown; + MathValueRecord fractionDenominatorDisplayStyleShiftDown; + MathValueRecord fractionNumeratorGapMin; + MathValueRecord fractionNumDiisplayStyleGapMin; + MathValueRecord fractionRuleThickness; + MathValueRecord fractionDenominatorGapMin; + MathValueRecord fractionDenomDisplayStyleGapMin; + MathValueRecord skewedFractionHorizontalGap; + MathValueRecord skewedFractionVerticalGap; + MathValueRecord overbarVerticalGap; + MathValueRecord overbarRuleThickness; + MathValueRecord overbarExtraAscender; + MathValueRecord underbarVerticalGap; + MathValueRecord underbarRuleThickness; + MathValueRecord underbarExtraDescender; + MathValueRecord radicalVerticalGap; + MathValueRecord radicalDisplayStyleVerticalGap; + MathValueRecord radicalRuleThickness; + MathValueRecord radicalExtraAscender; + MathValueRecord radicalKernBeforeDegree; + MathValueRecord radicalKernAfterDegree; + le_uint16 radicalDegreeBottomRaisePercent; +} MathConstants; + +typedef enum { + unknown = -1, + scriptPercentScaleDown = 0, + scriptScriptPercentScaleDown, + delimitedSubFormulaMinHeight, + displayOperatorMinHeight, + mathLeading, + firstMathValueRecord = mathLeading, + axisHeight, + accentBaseHeight, + flattenedAccentBaseHeight, + subscriptShiftDown, + subscriptTopMax, + subscriptBaselineDropMin, + superscriptShiftUp, + superscriptShiftUpCramped, + superscriptBottomMin, + superscriptBaselineDropMax, + subSuperscriptGapMin, + superscriptBottomMaxWithSubscript, + spaceAfterScript, + upperLimitGapMin, + upperLimitBaselineRiseMin, + lowerLimitGapMin, + lowerLimitBaselineDropMin, + stackTopShiftUp, + stackTopDisplayStyleShiftUp, + stackBottomShiftDown, + stackBottomDisplayStyleShiftDown, + stackGapMin, + stackDisplayStyleGapMin, + stretchStackTopShiftUp, + stretchStackBottomShiftDown, + stretchStackGapAboveMin, + stretchStackGapBelowMin, + fractionNumeratorShiftUp, + fractionNumeratorDisplayStyleShiftUp, + fractionDenominatorShiftDown, + fractionDenominatorDisplayStyleShiftDown, + fractionNumeratorGapMin, + fractionNumDisplayStyleGapMin, + fractionRuleThickness, + fractionDenominatorGapMin, + fractionDenomDisplayStyleGapMin, + skewedFractionHorizontalGap, + skewedFractionVerticalGap, + overbarVerticalGap, + overbarRuleThickness, + overbarExtraAscender, + underbarVerticalGap, + underbarRuleThickness, + underbarExtraDescender, + radicalVerticalGap, + radicalDisplayStyleVerticalGap, + radicalRuleThickness, + radicalExtraAscender, + radicalKernBeforeDegree, + radicalKernAfterDegree, + lastMathValueRecord = radicalKernAfterDegree, + radicalDegreeBottomRaisePercent, + lastMathConstant = radicalDegreeBottomRaisePercent +} mathConstantIndex; + +typedef struct { + le_uint16 minConnectorOverlap; + Offset vertGlyphCoverage; + Offset horizGlyphCoverage; + le_uint16 vertGlyphCount; + le_uint16 horizGlyphCount; + Offset vertGlyphConstruction[ANY_NUMBER]; + Offset horizGlyphConstruction[ANY_NUMBER]; +} MathVariants; + +typedef struct { + TTGlyphID variantGlyph; + le_uint16 advanceMeasurement; +} MathGlyphVariantRecord; + +typedef struct { + Offset glyphAssembly; + le_uint16 variantCount; + MathGlyphVariantRecord mathGlyphVariantRecord[ANY_NUMBER]; +} MathGlyphConstruction; + +typedef struct { + TTGlyphID glyph; + le_uint16 startConnectorLength; + le_uint16 endConnectorLength; + le_uint16 fullAdvance; + le_uint16 partFlags; +} GlyphPartRecord; +#define fExtender 0x0001 + +typedef struct { + MathValueRecord italicsCorrection; + le_uint16 partCount; + GlyphPartRecord partRecords[ANY_NUMBER]; +} GlyphAssembly; + +typedef struct { + le_uint16 mathItalicsCorrectionInfo; + le_uint16 mathTopAccentAttachment; + le_uint16 extendedShapeCoverage; + le_uint16 mathKernInfo; +} MathGlyphInfo; + +typedef struct { + le_uint16 coverage; + le_uint16 italicsCorrectionCount; + MathValueRecord italicsCorrection[ANY_NUMBER]; +} MathItalicsCorrectionInfo; + +#endif |