v16.1.0-canary.26
- fix: otel error spans from streamed responses: #86955
- Refactor: Unify history traversal with other nav types: #87128
- Create initial tree using same function as navigations: #87147
- [ci] Ensure runners use configured Node.js version: #87183
Huge thanks to @ztanner, @eps1lon, and @acdlite for helping!
v16.1.0-canary.25
- Fix interception routes with trailing slash configuration: #86787
- [ci] Stop building when creating release: #87178
- [ci] Ensure build-and-deploy run on path-like branches
- [ci] Cancel in-progress pull_request_stats with native concurrency features: #87190
- [ci] Cancel in-progress build_and_deploy for PRs: #87191
Huge thanks to @eps1lon and @wyattjoh for helping!
8.41.2
- #17544: GS Cleanup + depth renderer + more tests
- #12: Exporting Materials
- #17553: FrameGraph: add support for OIT
- #17552: handle _onOutBusDisposed dynamically to prevent memory leak
This list of changes was auto generated.
MathJax v4.1.0
This release adds a number of new or improved features to MathJax, and fixes several issues in version 4.0.0. The new features are described in the sections below, and the changes and issues they resolve are linked in the lists in the last section.
- Compatibility Changes
- Updates to the User Interface
- Updates to Speech Generation
- Updates to TeX Input Processing
- Updates to CHTML and SVG Output
- New Configuration Options
Some of the features in v4.0 used modern CSS that is not available in order browsers. Several updates in v4.1 address those issues by using older CSS techniques to accommodate more legacy browser versions.
In addition, v4.0 uses the modern Object.hasOwn() call rather than obj.hasOwnProperty(). The support for this only goes back a few years, and was a source of problems in older browsers. Version 4.1 uses a polyfill to overcome this deficiency in browsers that don't support Object.hasOwn(). A new MathJax.startup.polyfillHasOwn configuration option controls whether MathJax should use its polyfill when Object.hasOwn() isn't available natively. Use
MathJax = {
startup: {
polyfillHasOwn: false,
}
};
to disable the use of the polyfill.
The v4.0 build tools used to compile and package MathJax get confused by the use of Windows file paths. Version 4.1 has updated the tools to work in Windows, so you can compile and and bundle MathJax from the Windows command or power shell.
There are a number of user-interface improvements in this release. Notable among these is new support for a dark-mode color scheme. This should take effect automatically when the user changes the system settings to dark mode.
Another significant improvement is updated handling of dialog boxes, like the MathJax explorer help dialog. These now use the browser's dialog element, so they should float over top of the rest of the page (v4.0 failed to set the z-index properly for dialogs, and they could fall behind other page elements in that version). Furthermore, the dialogs now can be sized and repositioned, either by dragging with he mouse, or using arrow keys. Dialog boxes now have a (?) icon at the upper left that opens a new dialog that explains how to size and position the dialogs using the mouse or keyboard.
The explorer help icon (small ⓘ at the upper right-hand corner of an expression) is now positioned better so that it is not clipped when wide expressions scroll or truncate, and for displayed expressions without tags, the icon is now close to the expression rather than at the right-hand edge of the expression's container. Some page authors have requested the ability to remove the help icon altogether, so a new option MathJax.options.enableExplorerHelp has been added to control that setting it to false prevents the help icon from appearing.
In earlier versions of MathJax, you could not tab to links within expressions, and although they were focusable, they appeared within DOM nodes that were marked as hidden from screen readers, which was a problematic arrangement. In v4.1, you can tab to the links within an expression; however, due to technical limitations, these links do not appear in the list of links for the page.
In the expression explorer in v4.0, there were some situations where the highlighted terms did not include everything that was part of the spoken text. This has been fixed in v4.1, so highlighting should more accurately reflect the spoken expression. There were also a number of issues with explorer magnification of tagged expressions that are resolved in v4.1.
The speech for tagged expressions is improved in v4.1, in particular in how parentheses or other limiters around equation numbers are spoken. In order to support this, the tagformat TeX extension has been updated to allow the tagformat.tag and tagformat.ref configuration options to specify an array of three items, such as ['(', tag, ')'] rather than '(' + tag + ')' as in the past in order to separate the delimiter's from the tag itself. For backward compatibility, tagformat will separate out parentheses, braces and brakes automatically if the tag format is given as a single string.
Although the speech rule engine used by MathJax can produce Braille representations of the typeset expressions, support for tactile Braille output devices varies across screen readers, browsers, and operating systems. This has caused problems with Braille output devices in v4., which uses the aria-braillelabel attribute to specify an expression's Braille representation, since not all screen readers handle that attribute properly. Version 4.1 works around some of these limitations, and includes a new contextual menu item "Combine with Speech" in the Braille submenu that tells MathJax to include the Braille along with the speech in the aria-label attribute. This allows some screen readers to pass the Braille on to a Braille output device while still speaking the expression's text. In particular, NVDA users in Windows should select this option, while JAWS uses should not.
Prior to v4.0, MathJax by default used MathML that was visually hidden but available to screen readers that understand MathML and had it's onward speech-rule-engine generated text as an option that could be turned on. In v4.0, that was reversed, and the generated speech is on by default, with the hidden MathML as an option. Some readers prefer the hidden MathML, but to enable it you needed to turn it on and turn off speech and Braille, which took several menu selections to accomplish. In v4.1, selecting the hidden MathML turns off speech and Braille automatically, while selecting ether speech or Braille will turn off the hidden MathML, making it easier to switch between these two techniques. Note, however, that turning off speech and Braille will disable MathJax's expression explorer, and you must rely on the browser/screen-reader's ability to explore the hidden MathML expression instead.
Labels are now spoken correctly at the top level and can be fully navigated at the end of a line or row. Also the speech for fenced labels now follow the rules selected by the speech preferences, the same as for other fenced expression. Likewise, prefix expression like column, row, line, case, etc., now follow the ClearSpeak preference settings.
SSML marking is now consistently being used throughout all speech rules across all rule sets and locales. Previously, only most of ClearSpeak and some of the English MathSpeak rules were marked up in SSML. Now it is rolled out across all locales, which leads to better synchronised highlighting in the MathJax self-voicing component. For example, for the formula $\{a,b,c\}$, when speaking StartSet only the opening brace will be highlighted, and similarly the closing brace for EndSet, rather than the entire expression as it was previously.
For formulas that contain hyperlinks, previously the links would only be announced when discovered during navigation, leaving the reader unaware of the fact that a formula contains one or more links. Now links are summarized at the top-level, giving the number of links that are contained in the expression, including if the entire formula is itself a link.
Other improvements include better treatment of mathematical elements that masquerade as text elements (usually for obtaining a different font), the correct recognition and speaking of European-style open intervals, in particular in ClearSpeak, as well as improved separation and alignment of indices for multi-indexed structures like tensors.
See also the lastest SRE release notes for more details.
Some changes in v4.0 caused some left- and right-hand arrows in the mhchem extension to be swapped. Version 4.1 fixes that problem. In addition, using some explicit arrow macros like \rightleftharpoons would produce undefined macro warnings. Again, this is fixed in v4.1.
The use of numbers within \operatorname{} could lead to incorrect spacing in v4.0; e.g., \operatorname{atan2} would produce atan 2 with a space before the 2. This problem is fixed in v4.1, along with some issues with the spacing after empty operators or operators consisting of several components, like \operatorname{arg\,min}.
The processing of the CD environment now allows spacing following @, as in actual LaTeX, and the positions of labels on vertical arrows have been adjusted to better match actual LaTeX output.
The stretchy arrows produced by \xrightarrow and similar macros could stretch farther than expected in v4.0; in particular, this could occur if the arrow is the only item within a table cell in an array or alignment. In some cases, an arrow could disappear in CHTML output. Both these issues have been resolved in v4.1.
Incorrect use of braces with the \set command and similar ones from the braket extension did not always process the appropriate error message. For example. \set{ would throw an un-trapped error, while \set} would produce an empty set with no error message. These issues are resolved in v4.1.
Finally, the data-latex attributes attached to the internal MathML representation of the expressions (and carried over to the CHTML and SVG output) were sometimes incorrect. For example, a_{123} would mark the subscript using data-latex="23" rather than data-latex="123", while \begin{array} could be marked as just data-latex="{array}". The data-latex attributes should now be correct in these situations in v4.1.
The CHTML output in v4.0 used modern CSS properties for clipping regions that are not supported in some older browsers. Version 4.1 replaces those with equivalent older CSS rules in order to be more compatible with those browsers. Some v4.0 CSS rules included the use of the * selector (though not at the top level), and this can degrade the performance in pages with a lot of complicated mathematical notation. These rules have been replaced by equivalent ones using explicit selectors instead.
The positioning of some combining accents, most notabley the vector arrow U+20D7 from \vec in TeX, were misplaced in v4.0 when viewed in Safari or other WebKit-based browsers. This has been resolved in v4.1.
The bounding boxes for arrays and alignments were miscalculated in v4.0 when automatic (or explicit) line breaks occur within their table cells, which could lead the the array or alignment overlapping content above or below the table. In addition, the width of columns containing stretchy horizontal character sometimes did not get computed correctly. Similarly, the size of a horizontal stretchy character that is made from a multi-character assembly might end up being too big in v4.0. These issues have been fixed in v4.1.
Several new configuration options are available in v4.1, including
-
A new
fontExtensionsoption in theoutputblock of the MathJax configuration allows you to specify the font extensions that you want to load. This simplifies using font extensions likemathjax-euler, which in v4.0 took some additional configuration to work properly. -
A new
fontsloader path is defined inloader.pathsthat points to where you want to load font extensions (like the ones used for themhchem,dsfont,bbm, andbboldxextensions). If you are hosting your own copy of MathJax and its fonts, this allows you to route these extensions to your server with only one configuration change, rather than having to specify the location for each font individually. -
A new
polyfillHasOwnoption in thestartupblock of the MathJax configuration controls whether MathJax will apply a polyfill for the modernObject.hasOwn()javascript function of that is missing. Modern browsers include this function already, but some older ones do not, so this allows MathJax to work in older browser versions. -
Add new
enableExplorerHelpoption in theoptionsblock of the MathJax configuration determines whether the help icon at is shown at the upper right corner of the expression when it has the focus. Setting this to false disables the help icon.
-
Fix some issues with
data-latexhandling. (mathjax/MathJax#3459) (#1385) -
Don't let extensible arrows stretch a second time. (mathjax/MathJax#3457) (#1382)
-
Fix incorrectly swapped left and right arrows in
mhchem. (#1358) -
Only replace
mhchemarrows whenmhchemversions are available. (mathjax/MathJax#3452) (#1372) -
Fix spacing issues with
\operatorname. (mathjax/MathJax#3448) (#1367) -
Don't add invisible function apply after an empty
\mathop. (#1341) -
Fix handling of malformed arguments to
\setand others. (mathjax/MathJax#3447) (#1365) -
Update the position of labels on vertical arrows to better match actual LaTeX output. (#1355)
-
Allow spaces after
@in CD environment, as in actual LaTeX. (mathjax/MathJax#3425) (#1343)
-
Fix a number of line-breaking problems in tables and elsewhere. (mathjax/MathJax#3416) (#1338)
-
Fix vector arrow positioning for Safari. (#1375)
-
Update clip-path CSS to handler older browsers. (#1356)
-
Remove use of
*in CSS declarations. (mathjax/MathJax#3463) (#1387) -
Use a default font size when it can't be computed directly. (mathjax/MathJax#3458) (#1380)
-
Prevent a disappearing stretchy arrow in CHTML. (mathjax/MathJax#3457) (#1381)
-
Allow stretched characters to increase column size (e.g., if it has
minsize). (mathjax/MathJax#3423) (#1353) -
Fix a problem with horizontal stretchy extenders when they are small. (mathjax/MathJax#3429) (#1347)
-
Prevent unwanted forced inline breaks in SVG semantics elements. (mathjax/MathJax#3428) (#1346)
-
Add support for dark-mode colors. (1369)
-
Update key explorer to use
dialogelements for help dialogs. (mathjax/MathJax#3405) (#1357) -
Make dialogs movable and sizable. (#1357)
-
Support tabbing to links internal to an expression. (mathjax/MathJax#3406) (#1335)
-
Fix problems with sending Braile to Braille output devices. (#1396)
-
Fix problems with magnification of tagged expressions and expressions with enclosures. (#1391)
-
Ensure highlighting of all nodes that are spoken. (#1349, #1354)
-
Better handling of speech for tagged expressions. (#1345)
-
Make selecting hidden MathML unset speech/Braille and vice-versa. (#1388)
-
Fix typo in menu that lead to an incorrect option in MacOS. (#1376)
-
Change CSS for help icon so that when
scrollortruncateis used, it is not clipped. (mathjax/MathJax#3432) (#1350) -
Remove use of
aria-levelattributes. (#1344)
-
Add
fontExtensionsconfiguration option. (mathjax/MathJax#3410) (#1337) -
Add a
fontsloader path and have fonts use that for accessing their data. (#1373) -
Provide
Object.hasOwnpolyfill and configuration option. (#1351) -
Update
node-mainso that it works inbunas well asnode. (mathjax/MathJax#3476) (#1397) -
Add missing
preLoaded()call forinput/mmlwhen a11y tools are used. (#1377) -
Prevent circular dependency for tex extensions that load font extensions. (#1366)
-
Fix problem with Styles handling of
margin. (mathjax/MathJax#3443) (#1362) -
Better sanitization of styles. (#1348)
-
Add option to disable the explorer help dialog. (mathjax/MathJax#3422) (#1340)
-
Add missing
helpmenu option. (#1336)
-
Fix build path handling to work with Windows. (#1361)
-
Use
nodeto callmakeAllin the package scripts. (#1339)
@dnd-kit/react@0.2.1
- Updated dependencies [
d7f4130]:- @dnd-kit/dom@0.2.1
- @dnd-kit/abstract@0.2.1
- @dnd-kit/state@0.2.1