Releases: mihaelamj/MathTypeset
MathTypeset 0.7.0
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 \Biggwere recognized before), the
\text{...}command for upright literal text, and\le/\geas 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 (seeCOMMERCIAL.md). Versions published before
this change remain available under their original MIT terms.
MathTypeset 0.6.0
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 threwunsupportedControlWord,
forcing the whole formula to a visible-source fallback in consumers. Additive.
MathTypeset 0.5.0
Added
MathLayout.SymbolStyle.unicodeWhereCoveredplus asymbolCoverageclosure 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
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
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
Additive: TrueTypeByteReader.bytes(at:count:) for bounds-checked N-byte / sub-slice reads (throws on overflow). No breaking changes.
MathTypeset 0.2.2
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
Additive: MathLinearizer is now public for linearizing an arbitrary MathNode to readable text. No breaking changes.
MathTypeset 0.2.0
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
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