All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning v2.0.0.
Unreleased (3.0.0)
- (Breaking change!) Support for .NET 6 and 7. The new list of supported frameworks:
- for WPF-Math: .NET Framework 4.6.2 or later, .NET 8 or later;
- for Avalonia-Math: .NET Framework 4.6.2 or later, .NET Standard 2.0 or later, .NET 8 or later.
- The exception classes are now
sealed(should not break anything, since there never was any sense in extending them in the user code). - Avalonia:
AvaloniaMathFontProvider::Instanceis now read-only.
2.1.0 - 2023-07-15
- AvaloniaMath is now based on (and thus compatible with) Avalonia 11.
2.0.0 - 2023-06-11
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).
- (Breaking!) Avalonia: rename
AvaloniaBrushExtensionstoAvaloniaExtensions. - (Breaking!) WPF: rename
WpfBrushExtensionstoWpfExtensions. - (Breaking!)
IElementRendereris now required to implement a new method,RenderLine(required for the new\cancel*commands).
jlm_msam10.ttffont with a lot of new characters, thanks @Orace, that closes the following requests:- New commands:
\cancel,\bcancel,\xcancel(partially addressing issue #349), thanks @Orace.
1.1.0 - 2023-04-30
- #387: Alignment issue in matrix with an empty cell, thanks @Orace.
- #389: Padding is not respected with
\cases, thanks @Orace.
- #381: Support for
\begin{align}, thanks @Orace. - The README file is now packed into NuGet for better documentation.
1.0.0 - 2023-02-07
- 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.Sharedassembly was renamed toXamlMath.Shared:- a lot of types were migrated from
WpfMathnamespace toXamlMath, - all the internal XML file resources were migrated to the new namespace as well.
- a lot of types were migrated from
- The
XamlMath.Sharedassembly 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::Parsenow acceptsIReadOnlyListinstead ofIEnumerable. - (Minor breaking change.)
XamlMath.Colors.StandardColorParsers::Dictionarystatic public field is nowreadonly. - (Minor breaking change.)
WpfMath.Rendering.WpfBrushFactory's constructor is nowprivate. - (Minor breaking change.)
WpfMath.Rendering.WpfBrushFactory::Instancestatic public field is nowreadonly.
- (Breaking change.) Delete the
TexRendererclass. Use extension methods fromWpfMath.Rendering.WpfTeXFormulaExtensionsandWpfMath.Rendering.TeXFormulaExtensionsto replace its functionality in your code.
-
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.
0.13.1 - 2023-01-29
0.13.0 - 2023-01-27
-
(Breaking change.) The library is now distributed in the form of two assemblies:
WpfMathandWpfMath.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.Sharedassembly (preserving their namespaces). -
(Breaking change.) It is no longer recommended to create instances of
TexEnvironmentusing the public constructor. UseWpfMath.Rendering.WpfTeXEnvironment::Createinstead. -
(Breaking change.) It is no longer recommended to create instances of
TexFormulaParserusing public constructors. UseWpfMath.Parsers.WpfTeXFormulaParser::Instanceinstead. -
(Breaking change.) WPF-specific
WpfMath.Rendering.IBrushhas been replaced withWpfMath.Rendering.IBrushin most of the public interfaces. UseWpfMath.Rendering.WpfBrushExtensionsto convert back and forth to the WPF type. -
(Breaking change.)
WpfMath.Rendering.IElementRendererhas been updated:RenderGlyphRunhas been replaced withRenderCharactermethod (not reliant on any WPF-specific types),RenderRectanglenow receives an instance of a newWpfMath.Rendering.Rectangletype (decoupled from WPF).
-
WpfMath.TexRendereris now obsolete. Consult the documentation on new recommended ways to perform custom rendering. There are new extension methods in two classes (WpfMath.Rendering.WpfTeXFormulaExtensionsandWpfMath.Rendering.TeXFormulaExtensions) that are the main way to render formulae now. -
(Breaking change.)
WpfMath.TexFormnula::GetRendereris gone. Create aTexRendererusing constructor (obsolete) or use the aforementioned extension methods instead.
WpfMath.CharInfo: a new public type to work with a font character. UseWpfMath.Fonts.WpfCharInfoEx::GetGlyphRunif you need to get aSystem.Windows.Media.GlyphRunfrom it.WpfMath.Rendering.WpfTeXFormulaExtensionsto render aWpfMath.TexFormulainto aSystem.Windows.Media.Imaging.BitmapSourceorSystem.Windows.Media.Geometry.- New classes for WPF-Math porting to platforms other than WPF (consult the
WpfMath.Rendering.IElementRendererinterface andTexFormulaParserconstructor parameters to know more). WpfMath.Colors.RgbaColoras 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.TeXFontMetricsthat contains some measurements of a font glyph.- A utility
Resultstruct is now public.
0.12.0 - 2023-01-07
- TeX's environment support with only one environment for now:
\begin{pmatrix}(see #329).
- The project is now built on .NET 7 SDK and C# 11 (shouldn't change the supported framework set).
0.11.0 - 2021-08-31
0.10.0 - 2021-07-06
- (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).
- #99:
Foregroundproperty not working onFormulaControl - #283: Fix typo in
SystemTextFontNameProperty - #244:
\limsupthrows 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:
OverUnderBoxconstructor may dereference scriptBox parameter if it'snull
0.9.0 - 2020-07-31
- #59: Extended delimiter support: e.g.
\left\\ - #149: Newline command support: try using
\\outside of a matrix - #252: Support for \{ and \} commands
- #139: Exception thrown by \,
- #151: Wrong sources detected for complex predefined formulae
- #225: \text doesn't work with indices if there's only one Cyrillic letter
- #248: Wrong exception gets thrown for \text{∅}
- #253: Added equal padding to all sides when saving to bitmap
- #257: IndexOutOfRangeException throws when using \color
0.8.0 - 2020-01-03
- #165: Extended color support for \color and \colorbox, see the documentation
- #174: \binom command
- #209: WPF support on .NET Core 3.0
- #226: Add TFM into nuspec
- #128: \colorbox renders radical index invisible
- #158: \color{red} crashes parser
- #203:
\colorbox{red}{}crashes the parser - #212:
\mathrm{}shouldn't throw exn
0.7.0 - 2019-08-24
- (Breaking change!) #198: Migrate to .NET 4.5.2
- #141: _ doesn't render inside \text
- #171: Make \lbrack and \lbrack commands for parentheses
- #172: NullReferenceException on some types of markup
0.6.0 - 2018-11-19
- (Refactoring) #152: Move converters to namespace
0.5.0 - 2018-05-08
- #101: Fixed crash on empty square root
- #103: Fixed a crash if inserting a whitespace after a _ or ^ symbol
- #102: Fixed a crash when rendering unsupported characters like "Å"
- #104: Error when rendering
\text{æ,} - #119: Big operator rendering problem inside
\frac - #129: Summation of two Cyrillic symbols
- #133: Fix issues with exceptions
- #92: Extract Renderer code to a single class/interface
- #115: Give a range of source string to Box
- #123: Add formula highlighting
- (Documentation) #108: Dealing with XML
0.4.0 - 2017-09-11
- #79: SVG: Added support for curves and removed flattening of the geometry
- #82: Support UTF8
- #84: Add \text{} command
0.3.1 - 2017-03-18
- Bug fixes, improved render quality
- #53: Fix crash while parsing empty groups
- #54: Remove delimiter type constraint
- #58: Support for empty delimiters (that means #14: Extensible delimiters (\left and \right) is completely fixed)
- #71: Use guidelines for WPF render (partial fix for #50: Improve blurred output, should improve image quality for some cases)
- Adjust metrics for radical symbol
- #74: Add support for scripts to delimiters (fix for #62: Delimiters should support scripts)
0.3.0 - 2017-02-24
- #14: Extensible delimiters (\left and \right) (not completely fixed, but in a usable state already)
- #15: Add formula control to the library
- #38: Cannot change text style
- #32: Add mathematical functions
- #24: Integral sign displays incorrectly
0.2.0 - 2017-02-16
Merged all the patches from the Launchpad repository (see #3 for a full list). The most interesting ones are:
- Fix for culture-dependent number parsing in
XmlUtils - Addition of SVG rendering functionality
0.1.0 - 2017-02-11
This was the initially published version. It consisted of the original code from the Launchpad project site (but only the version for .NET 4 was published).
The features included more or less correspond to what was available in JMathTex, as the project started as a .NET port of that.
Read more at the licensing history document.