Make sure multiple elements are typset in order. (mathjax/MathJax#2999) #912
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR refactors the
HTMLDocument.findMath()
method so that the order of the math is preserved properly. This is done by changing the order of the nested loops. In the past, the outer loop was on the containers, and then each Jax was called to find its math and the results were merged into the document list. This failed to work properly because the sorting is based on the index of the string in which the math was found, but the list of strings is separate for each container, so they get interleaved when merged. (See mathjax/MathJax#2999 for an example.)Now the order is to loop over the jax first, and then over the containers, so that all the strings for all the containers are in one larger list, and there is no interleaving. At least not for a single typeset call.
Resolves issue mathjax/MathJax#2999.