Releases: mathlingua/mathlingua
v0.22.0
v0.21.0
This release introduces improvements to how content is rendered in mlg view
and adds basic support for rendering documents with LaTeX.
Version v0.20.0
This is the first release of the complete re-write of Mathlingua created so that type support and operator overloading can eventually be supported.
This version supports parsing and syntactic level diagnostic checking, but does not support full type-checking, LaTeX rendering, or operator overloading.
It does, however, setup the framework that allow these features to be enabled in future releases.
In addition, for the re-write, the language has been dramatically changed and so existing Mathlingua code that previously checked correctly may not be valid in this version.
Version 0.15.1
Non-breaking Changes:
- The built binaries are automatically signed for MacOS systems.
- Address an issue when on initial page load, LaTeX is not rendered.
mlg versions
indicates the current version instead of indicating the latest version since the latest version is always the first version in the list.
Version 0.15.0
Breaking Changes:
- The text in
called:
sections is no longer auto capitalized when rendered as definition titles. - The
name??
syntax is no longer supported inwritten:
statements. Insteadname+?
is used to specify that parentheses should be added to complex expressions. (Also see the newname-?
syntax below.) - The
evaluated:
section has been renamed toexpresses:
. - A
Defines:
must have either ameans:
section or anexpresses:
section but not both.
Non-breaking Changes:
- The new
name-?
syntax support has been added towritten:
statements. The formname-?
means that the expression associated withname
should have any surrounding parentheses removed when rendering. This is useful, for example, to specify awritten:
section that has text\frac{a-?}{b-?}
since the numerator and denominator don't need parentheses. - The presence of a
means:
section in aDefines:
construct specifies that the definition describes an abstract concept (such as a continuous function) that can be used in the right-hand-side ofis
orin
statements, but not in expressions such as\something{x} + y
. - The presence of an
expresses:
section in aDefines:
construct specifies that the definition describes a concrete object (such as thesin(x)
function) that can be used in expressions, such as\sin(x) + y
but not in the right-hand-side ofis
orin
statements. - If the
MLG_GOOGLE_ANALYTICS_ID
environment variable is set when runningmlg document
, the generated files will have Google Anallytics 4 enabled using the given measurement id. - If Google Analytics 4 is enabled for the document rendered by
mlg document
, a banner will appear asking the user if they would like to allow cookies to be used. - The editor in
mlg edit
provides a multi-tab experience to allow multiple files to be open at the same time. - The
mlg document
command supports having local references to files such as images. - The
mlg document
automatically generates an index to allow the user to search for definitions, theorems, axioms, and conjectures by signature or by name. - Signatures can be searched in the document generated by
mlg document
using the syntax[\some.signature]
. - Some constraints that
mlg check
didn't verify are now checked correctly. - Fixed some
mlg document
rendering issues on iPad Pros.
Version 0.14.0
Non-breaking Changes:
- Address some issues preventing
mlg
from working on Windows.
Version 0.13.0
Breaking Changes:
- Sequence-like items in the structure language require
{...}
around parameters. That is, previously{x_i}_i
was valid syntax, but now it must be written as{x_{i}}_{i}
. - The
requiring:
section has been renamed togiven:
. This adds consistency acrossDefines:
,States:
,Axioms:
,Theorem:
, andConjecture:
constructs as they all usegiven:
sections. - The
if:
section inTheorem:
,Axiom:
, andConjecture:
has been renamed towhen:
to make the constructs more consistent withDefines:
andStates:
. - The
iff:
section inTheorem:
,Axiom:
, andConjecture:
is now after thethen:
section.
Non-Breaking Changes:
- Feature: The structure language now supports symbol names of the form
X_1
. - Feature: Tuples are now supported in
using:
sections. That is, one can write(+, *) := ...
inusing:
sections. - Fix: Operator commands of the form
\op.</
are now rendered correctly. - Fix: Addressed various cases where
mlg check
incorrectly reported check errors or didn't identify errors. - Feature: The
called:
section is no longer required inDefines:
andStates:
constructs. If not provided, the content of thewritten:
section will be used. - Fix:
is
is rendered correctly in expressions that haveis
statements in nested parens, such as in\some.function{x is X}
. - Feature:
{x_{i}}_{i}
forms can appear on the left-hand-side ofis
statements. - Feature:
(A, B, C)
forms can appear on the left-hand-side ofis
statements. - Feature:
mlg edit
now automatically opens a web browser. The--open
and--no-open
options have also been added to enforce or suppress this behavior. - Feature: The keybinding
(Ctrl/Meta)+S
causes the editor to save the current file in the client app. - Feature: Added stropping support to the expression language. Now
`*`
is interpreted as an identifier. - Feature: Various improvements to the documentation.
Version 0.12.0
Breaking changes:
- The
instance:of:by?:
structure has been removed. Use theas:via:by?:
structure instead.
Non-breaking changes:
- Fixed an error where, in some cases, the use of a defined variable was incorrectly marked as the use of an unknown symbol.
- Improved the CSS of the docs generated by
mlg document
andmlg edit
to better support zooming and larger screens.
Version 0.11.0
- The client CSS has been updated to use a light theme.
- The
viewing:as:
construct is nowviewing:as:by?:
where theby?:
section specifies the theorem that validates the construct. - The
instance:of:by?:
construct is used to specify something is an instance of something else. For example, the real numbers is an instance of a metric space.
Version 0.10.1
- Client side panel width fits content.
- Fix incorrect autocompletions on the client.