Wpf Math Versions Save

A collection of .NET libraries for rendering mathematical formulae using the LaTeX typesetting style, for the WPF and Avalonia XAML-based frameworks

v2.1.0

9 months ago

Changed

  • AvaloniaMath is now based on (and thus compatible with) Avalonia 11.

Fixed

v2.0.0

10 months ago

Although a major release with certain formally breaking changes, these changes should hopefully not break any normal usage of the library (if the user code doesn't implement own IElementRenderer).

Changed

  • (Breaking!) Avalonia: rename AvaloniaBrushExtensions to AvaloniaExtensions.
  • (Breaking!) WPF: rename WpfBrushExtensions to WpfExtensions.
  • (Breaking!) IElementRenderer is now required to implement a new method, RenderLine (required for the new \cancel* commands).

Added

Fixed

v1.1.0

11 months ago

Fixed

Added

v1.0.0

1 year ago

Changed

  • The project has been renamed to XAML-Math. This doesn't change the NuGet package names (WpfMath and AvaloniaMath) and their contents (including namespaces of most entities), but changed the contents of the shared assembly.
  • (Breaking change.) WpfMath.Shared assembly was renamed to XamlMath.Shared:
    • a lot of types were migrated from WpfMath namespace to XamlMath,
    • all the internal XML file resources were migrated to the new namespace as well.
  • The XamlMath.Shared assembly has been extracted into a separately published NuGet package.
  • (Breaking change.) WPF-Math no longer supports .NET Framework 4.5.2, .NET Core 3.1 and .NET 5.0, because they are out of support by Microsoft. The only supported runtimes are:
    • .NET Framework 4.6.2 or later,
    • .NET 6.0 and later.
  • (Breaking change.) WpfMath.Colors.IColorParser::Parse now accepts IReadOnlyList instead of IEnumerable.
  • (Minor breaking change.) XamlMath.Colors.StandardColorParsers::Dictionary static public field is now readonly.
  • (Minor breaking change.) WpfMath.Rendering.WpfBrushFactory's constructor is now private.
  • (Minor breaking change.) WpfMath.Rendering.WpfBrushFactory::Instance static public field is now readonly.

Removed

  • (Breaking change.) Delete the TexRenderer class. Use extension methods from WpfMath.Rendering.WpfTeXFormulaExtensions and WpfMath.Rendering.TeXFormulaExtensions to replace its functionality in your code.

Added

  • Avalonia version is now available! Install the AvaloniaMath NuGet package to get it.

    It supports the following .NET variants:

    • .NET Framework 4.6.2 or later,
    • .NET Standard 2.0 or later,
    • .NET 6.0 or later.
  • Portable PDB packages are now published to NuGet.

v0.13.0

1 year ago

Changed

  • (Breaking change.) The library is now distributed in the form of two assemblies: WpfMath and WpfMath.Shared (as a future cross-platform core of the library).

    Both of the assemblies are still distributed in the same NuGet package.

    A lot of types were moved to WpfMath.Shared assembly (preserving their namespaces).

  • (Breaking change.) It is no longer recommended to create instances of TexEnvironment using the public constructor. Use WpfMath.Rendering.WpfTeXEnvironment::Create instead.

  • (Breaking change.) It is no longer recommended to create instances of TexFormulaParser using public constructors. Use WpfMath.Parsers.WpfTeXFormulaParser::Instance instead.

  • (Breaking change.) WPF-specific WpfMath.Rendering.IBrush has been replaced with WpfMath.Rendering.IBrush in most of the public interfaces. Use WpfMath.Rendering.WpfBrushExtensions to convert back and forth to the WPF type.

  • (Breaking change.) WpfMath.Rendering.IElementRenderer has been updated:

    • RenderGlyphRun has been replaced with RenderCharacter method (not reliant on any WPF-specific types),
    • RenderRectangle now receives an instance of a new WpfMath.Rendering.Rectangle type (decoupled from WPF).
  • WpfMath.TexRenderer is now obsolete. Consult the documentation on new recommended ways to perform custom rendering. There are new extension methods in two classes (WpfMath.Rendering.WpfTeXFormulaExtensions and WpfMath.Rendering.TeXFormulaExtensions) that are the main way to render formulae now.

  • (Breaking change.) WpfMath.TexFormnula::GetRenderer is gone. Create a TexRenderer using constructor (obsolete) or use the aforementioned extension methods instead.

Added

  • WpfMath.CharInfo: a new public type to work with a font character. Use WpfMath.Fonts.WpfCharInfoEx::GetGlyphRun if you need to get a System.Windows.Media.GlyphRun from it.
  • WpfMath.Rendering.WpfTeXFormulaExtensions to render a WpfMath.TexFormula into a System.Windows.Media.Imaging.BitmapSource or System.Windows.Media.Geometry.
  • New classes for WPF-Math porting to platforms other than WPF (consult the WpfMath.Rendering.IElementRenderer interface and TexFormulaParser constructor parameters to know more).
  • WpfMath.Colors.RgbaColor as a new portable color representation.
  • WpfMath.Fonts.IFontProvider: implement this interface to provide alternate font reading functionality.
  • WpfMath.Fonts.ITeXFont: implement this interface to provide access to a platform-specific font resource.
  • WpfMath.Rendering.IBrushFactory: implement this interface to provide access to creation of platform-specific solid-colored brushes.
  • WpfMath.TeXFontMetrics that contains some measurements of a font glyph.
  • An utility Result struct is now public.

v0.12.0

1 year ago

Added

  • TeX's environment support with only one environment for now: \begin{pmatrix} (see #329).

Changed

  • The project is now built on .NET 7 SDK and C# 11 (shouldn't change the supported framework set).

v0.11.0

2 years ago

Added

  • #262: Add \mod operator from amsmath

Fixed

  • #304: SystemFontFamilies does not return all FontFamilies in Chinese System

v0.10.0

2 years ago

Changed

  • (Breaking change!) Removed support for .NET Core 3.0. .NET Core 3.1 or later is supported from now (.NET Framework 4.5.2 is still supported; .NET 5.0 or later is supported, too).

Added

  • #277: Enable nullable reference types

Fixed

  • #99: Foreground property not working on FormulaControl
  • #283: Fix typo in SystemTextFontNameProperty
  • #244: \limsup throws exception
  • #254: Fix for scripts with curly braces after a command with curly braces (e.g. \hat{x}_{y})
  • #261: Crash on empty \sqrt{}
  • #275: OverUnderBox constructor may dereference scriptBox parameter if it's null