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 (2.1.1)
- 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::Instance
is 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
AvaloniaBrushExtensions
toAvaloniaExtensions
. - (Breaking!) WPF: rename
WpfBrushExtensions
toWpfExtensions
. - (Breaking!)
IElementRenderer
is now required to implement a new method,RenderLine
(required for the new\cancel*
commands).
jlm_msam10.ttf
font 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.Shared
assembly was renamed toXamlMath.Shared
:- a lot of types were migrated from
WpfMath
namespace toXamlMath
, - all the internal XML file resources were migrated to the new namespace as well.
- a lot of types were migrated from
- 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 acceptsIReadOnlyList
instead ofIEnumerable
. - (Minor breaking change.)
XamlMath.Colors.StandardColorParsers::Dictionary
static public field is nowreadonly
. - (Minor breaking change.)
WpfMath.Rendering.WpfBrushFactory
's constructor is nowprivate
. - (Minor breaking change.)
WpfMath.Rendering.WpfBrushFactory::Instance
static public field is nowreadonly
.
- (Breaking change.) Delete the
TexRenderer
class. Use extension methods fromWpfMath.Rendering.WpfTeXFormulaExtensions
andWpfMath.Rendering.TeXFormulaExtensions
to 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:
WpfMath
andWpfMath.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. UseWpfMath.Rendering.WpfTeXEnvironment::Create
instead. -
(Breaking change.) It is no longer recommended to create instances of
TexFormulaParser
using public constructors. UseWpfMath.Parsers.WpfTeXFormulaParser::Instance
instead. -
(Breaking change.) WPF-specific
WpfMath.Rendering.IBrush
has been replaced withWpfMath.Rendering.IBrush
in most of the public interfaces. UseWpfMath.Rendering.WpfBrushExtensions
to convert back and forth to the WPF type. -
(Breaking change.)
WpfMath.Rendering.IElementRenderer
has been updated:RenderGlyphRun
has been replaced withRenderCharacter
method (not reliant on any WPF-specific types),RenderRectangle
now receives an instance of a newWpfMath.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
andWpfMath.Rendering.TeXFormulaExtensions
) that are the main way to render formulae now. -
(Breaking change.)
WpfMath.TexFormnula::GetRenderer
is gone. Create aTexRenderer
using constructor (obsolete) or use the aforementioned extension methods instead.
WpfMath.CharInfo
: a new public type to work with a font character. UseWpfMath.Fonts.WpfCharInfoEx::GetGlyphRun
if you need to get aSystem.Windows.Media.GlyphRun
from it.WpfMath.Rendering.WpfTeXFormulaExtensions
to render aWpfMath.TexFormula
into aSystem.Windows.Media.Imaging.BitmapSource
orSystem.Windows.Media.Geometry
.- New classes for WPF-Math porting to platforms other than WPF (consult the
WpfMath.Rendering.IElementRenderer
interface andTexFormulaParser
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.- A utility
Result
struct 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:
Foreground
property not working onFormulaControl
- #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'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.