Skip to content

Releases: mihaelamj/MathTypeset

MathTypeset 0.7.0

28 Jun 00:21

Choose a tag to compare

Added

  • LaTeX command coverage for constructs that previously fell back to raw source:
    the sized-delimiter family \bigl \bigr \Bigl \Bigr \biggl \biggr \Biggl \Biggr
    (only the symmetric \big \Big \bigg \Bigg were recognized before), the
    \text{...} command for upright literal text, and \le / \ge as aliases of
    \leq / \geq.

Changed

  • License changed from MIT to AGPL-3.0. MathTypeset is now dual licensed: AGPL-3.0
    for open-source use, with a commercial license available for closed-source or
    otherwise AGPL-incompatible use (see COMMERCIAL.md). Versions published before
    this change remain available under their original MIT terms.

MathTypeset 0.6.0

28 Jun 00:24

Choose a tag to compare

Added

  • TeX horizontal spacing commands. New MathNode.space(em:) node, with the
    parser mapping \quad (1 em), \qquad (2 em), \, (thin), \: (medium),
    \; (thick), \! (negative thin), and \ (control space) to em multiples.
    Layout draws nothing and only advances (or retreats) the cursor; the linearizer
    emits a single space. Previously these commands threw unsupportedControlWord,
    forcing the whole formula to a visible-source fallback in consumers. Additive.

MathTypeset 0.5.0

28 Jun 00:24

Choose a tag to compare

Added

  • MathLayout.SymbolStyle.unicodeWhereCovered plus a symbolCoverage closure on
    MathLayout. Each math symbol draws its Unicode glyph when the consumer's font
    covers it and the ASCII transliteration otherwise, decided per symbol by the
    closure. The engine stays font-program-free: the consumer owns the coverage
    lookup. A full-coverage font behaves like .unicode, a base-14 font like
    .asciiFallback, and a partial font gets real glyphs where it can. Additive.

MathTypeset 0.4.0

03 Jun 04:37

Choose a tag to compare

The radical sign now scales with its radicand: drawn as two vector strokes (new MathLayoutElement.line case) instead of a fixed glyph. Breaking: consumers switching over MathLayoutElement must handle the new .line element (stroke a segment between the two points).

MathTypeset 0.3.0

03 Jun 04:25

Choose a tag to compare

Symbol commands now draw their Unicode glyph (∑, √, ±, ≤, ∞, Greek, relations, arrows) by default, instead of ASCII command words. New MathLayout.SymbolStyle (.unicode default, .asciiFallback) opts into ASCII for fonts without math-glyph coverage. Layout algorithm unchanged; ASCII retained as linearized for extraction.

MathTypeset 0.2.3

03 Jun 03:22

Choose a tag to compare

Additive: TrueTypeByteReader.bytes(at:count:) for bounds-checked N-byte / sub-slice reads (throws on overflow). No breaking changes.

MathTypeset 0.2.2

03 Jun 03:18

Choose a tag to compare

Additive: TrueTypeByteReader is now public (bounds-checked big-endian accessors + uint8(at:)) for consumers parsing their own font tables. No breaking changes.

MathTypeset 0.2.1

03 Jun 02:36

Choose a tag to compare

Additive: MathLinearizer is now public for linearizing an arbitrary MathNode to readable text. No breaking changes.

MathTypeset 0.2.0

03 Jun 02:26

Choose a tag to compare

Additive: the full OpenType MATH table (glyph info, variants, kerns, assemblies) is now public and constructible, not just constants. No breaking changes; 0.1.x consumers are unaffected.

.package(url: "https://github.com/mihaelamj/MathTypeset.git", from: "0.2.0"),

Coordination: mihaelamj/MarkdownPDF#203

MathTypeset 0.1.1

03 Jun 02:19

Choose a tag to compare

Patch: move the SwiftPM package to the repository root so it can be consumed as a git dependency (0.1.0 could not be resolved because its manifest was under Packages/). No API changes.

.package(url: "https://github.com/mihaelamj/MathTypeset.git", from: "0.1.1"),

Coordination: mihaelamj/MarkdownPDF#203