packages feed

texmath 0.12.8.13 → 0.12.9

raw patch · 110 files changed

+3259/−2830 lines, 110 files

Files

− README.markdown
@@ -1,182 +0,0 @@-# texmath--[![CI-tests](https://github.com/jgm/texmath/workflows/CI%20tests/badge.svg)](https://github.com/jgm/texmath/actions)--texmath is a Haskell library for converting between formats used to-represent mathematics.  Currently it provides functions to read and-write TeX math, presentation MathML, and OMML (Office Math Markup-Language, used in Microsoft Office), and to write Gnu eqn, typst, and-[pandoc]'s native format (allowing conversion, using pandoc, to-a variety of different markup formats).  The TeX reader and-writer supports basic LaTeX and AMS extensions, and it can parse-and apply LaTeX macros.  The package also includes several-utility modules which may be useful for anyone looking to-manipulate either TeX math or MathML.  For example, a copy of-the MathML operator dictionary is included.--[pandoc]: http://github.com/jgm/pandoc--You can [try it out online here](http://johnmacfarlane.net/texmath.html).--By default, only the Haskell library is installed.  To install a-test program, `texmath`, use the `executable` Cabal flag:--    cabal install -fexecutable--By default, the executable will be installed in `~/.cabal/bin`.--Alternatively, texmath can be installed using-[stack](https://github.com/commercialhaskell/stack).  Install-the stack binary somewhere in your path.  Then, in the texmath-repository,--    stack setup-    stack install --flag texmath:executable--The `texmath` binary will be put in `~/.local/bin`.--Macro definitions may be included before a LaTeX formula.--# Running texmath as a server--`texmath` will behave as a CGI script when called under the name-`texmath-cgi` (e.g. through a symbolic link).-The file `cgi/texmath.html` contains an example of how it can-be used.--But it is also possible to compile a full webserver with a JSON-API.  To do this, set the `server` cabal flag, e.g.--    stack install --flag texmath:server--To run the server on port 3000:--    texmath-server -p 3000--Sample of use, with `httpie`:--```-% http --verbose localhost:3000/convert text='2^2' from=tex to=mathml display:=false Accept:'text/plain'-POST /convert HTTP/1.1-Accept: text/plain-Accept-Encoding: gzip, deflate-Connection: keep-alive-Content-Length: 64-Content-Type: application/json-Host: localhost:3000-User-Agent: HTTPie/3.1.0--{-    "display": false,-    "from": "tex",-    "text": "2^2",-    "to": "mathml"-}---HTTP/1.1 200 OK-Content-Type: text/plain;charset=utf-8-Date: Mon, 21 Mar 2022 18:29:26 GMT-Server: Warp/3.3.17-Transfer-Encoding: chunked--<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML">-  <msup>-    <mn>2</mn>-    <mn>2</mn>-  </msup>-</math>-```--Possible values for `from` are `tex`, `mathml`, and `omml`.-Possible values for `to` are `tex`, `mathml`, `omml`, `eqn`, and-`pandoc` (JSON-encoded Pandoc).--Alternatively, you can use the `convert-batch` endpoint to pass-in a JSON-encoded list of conversions and get back a JSON-encoded-list of results.--# Generating lookup tables--There are three main lookup tables which are built form externally compiled lists.-This section contains information about how to modify and regenerate these tables.--In the `lib` direction there are two sub-directories which contain the-necessary files.--## MMLDict.hs--The utility program `xsltproc` is required.-You can find these files in `lib/mmldict/`--  1. If desired replace `unicode.xml` with and updated version (you can download a copy from [here](http://www.w3.org/TR/xml-entity-names/#source)-  2. `xsltproc -o dictionary.xml operatorDictionary.xsl unicode.xml`-  3. `runghc generateMMLDict.hs`-  4. Replace the operator table at the bottom of `src/Text/TeXMath/Readers/MathML/MMLDict.hs` with the contents of `mmldict.hs`--## ToTeXMath.hs--You can find these files in `lib/totexmath/`--  1. If desired, replace `unimathsymbols.txt` with an updated version from [here](http://milde.users.sourceforge.net/LUCR/Math/)-  2. `runghc unicodetotex.hs`-  3. Replace the record table at the bottom of `src/Text/TeXMath/Unicode/ToTeXMath.hs` with the contents of `UnicodeToLaTeX.hs`--## ToUnicode.hs--You can find these files in `lib/tounicode/`.--  1. If desired, replace `UnicodeData.txt` with an updated verson from-     [here](ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt).-  2. `runghc mkUnicodeTable.hs`-  3. Replace the table at the bottom of-     `src/Text/TeXMath/Unicode/ToUnicode.hs` with the output.--## Editing the tables--It is not necessary to edit the source files to add records to-the tables.  To add to or modify a table it is easier to add-modify either `unicodetotex.hs` or `generateMMLDict.hs`. This is-easily achieved by adding an item to the corresponding `updates`-lists. After making the changes, follow the above steps to-regenerate the table.--# The test suite--To run the test suite, do `cabal test` or `stack test`.--In its standard mode, the test suite will run golden tests of-the individual readers and writers.  Reader tests can be found-in `test/reader/{mml,omml,tex}`, and writer tests in-`test/writer/{eqn,mml,omml,tex}`.  Regression tests linked-to specific issues are in `test/regression`.--Each test file consists of an input and an expected output.-The input begins after a line `<<< FORMAT` and the output-begins after a line `>>> FORMAT`.--If many tests fail as a result of changes, but the test-failures are all because of improvements in the output,-you can pass `--accept` to the test suite (e.g., with-`--test-arguments=--accept` on `stack test`), and the existing-golden files will be overwritten.  If you do this, inspect-the outputs very carefully to make sure they are correct.--If you pass the `--roundtrip` option into the test suite-(e.g., using `--test-arguments=--roundtrip` with `stack test`),-round-trip tests will be run instead.  Many of these will-fail. In these tests, the native inputs in `test/roundtrip/*.native`-will be converted to (respectively) `mml`, `omml`, or `tex`,-then converted back, and the result will be compared with the-starting point.  Although we don't guarantee that this kind-of round-trip transformation will be the identity, looking-at cases where it fails can be a guide to improvements.--# Authors--John MacFarlane wrote the original TeX reader, MathML writer, Eq-writer, and OMML writer.  Matthew Pickering contributed the-MathML reader, the TeX writer, and many of the auxiliary-modules.  Jesse Rosenthal contributed the OMML reader.  Thanks-also to John Lenz for many contributions.
+ README.md view
@@ -0,0 +1,182 @@+# texmath++[![CI+tests](https://github.com/jgm/texmath/workflows/CI%20tests/badge.svg)](https://github.com/jgm/texmath/actions)++texmath is a Haskell library for converting between formats used to+represent mathematics.  Currently it provides functions to read and+write TeX math, presentation MathML, and OMML (Office Math Markup+Language, used in Microsoft Office), and to write Gnu eqn, typst, and+[pandoc]'s native format (allowing conversion, using pandoc, to+a variety of different markup formats).  The TeX reader and+writer supports basic LaTeX and AMS extensions, and it can parse+and apply LaTeX macros.  The package also includes several+utility modules which may be useful for anyone looking to+manipulate either TeX math or MathML.  For example, a copy of+the MathML operator dictionary is included.++[pandoc]: http://github.com/jgm/pandoc++You can [try it out online here](http://johnmacfarlane.net/texmath.html).++By default, only the Haskell library is installed.  To install a+test program, `texmath`, use the `executable` Cabal flag:++    cabal install -fexecutable++By default, the executable will be installed in `~/.cabal/bin`.++Alternatively, texmath can be installed using+[stack](https://github.com/commercialhaskell/stack).  Install+the stack binary somewhere in your path.  Then, in the texmath+repository,++    stack setup+    stack install --flag texmath:executable++The `texmath` binary will be put in `~/.local/bin`.++Macro definitions may be included before a LaTeX formula.++# Running texmath as a server++`texmath` will behave as a CGI script when called under the name+`texmath-cgi` (e.g. through a symbolic link).+The file `cgi/texmath.html` contains an example of how it can+be used.++But it is also possible to compile a full webserver with a JSON+API.  To do this, set the `server` cabal flag, e.g.++    stack install --flag texmath:server++To run the server on port 3000:++    texmath-server -p 3000++Sample of use, with `httpie`:++```+% http --verbose localhost:3000/convert text='2^2' from=tex to=mathml display:=false Accept:'text/plain'+POST /convert HTTP/1.1+Accept: text/plain+Accept-Encoding: gzip, deflate+Connection: keep-alive+Content-Length: 64+Content-Type: application/json+Host: localhost:3000+User-Agent: HTTPie/3.1.0++{+    "display": false,+    "from": "tex",+    "text": "2^2",+    "to": "mathml"+}+++HTTP/1.1 200 OK+Content-Type: text/plain;charset=utf-8+Date: Mon, 21 Mar 2022 18:29:26 GMT+Server: Warp/3.3.17+Transfer-Encoding: chunked++<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML">+  <msup>+    <mn>2</mn>+    <mn>2</mn>+  </msup>+</math>+```++Possible values for `from` are `tex`, `mathml`, and `omml`.+Possible values for `to` are `tex`, `mathml`, `omml`, `eqn`, and+`pandoc` (JSON-encoded Pandoc).++Alternatively, you can use the `convert-batch` endpoint to pass+in a JSON-encoded list of conversions and get back a JSON-encoded+list of results.++# Generating lookup tables++There are three main lookup tables which are built form externally compiled lists.+This section contains information about how to modify and regenerate these tables.++In the `lib` direction there are two sub-directories which contain the+necessary files.++## MMLDict.hs++The utility program `xsltproc` is required.+You can find these files in `lib/mmldict/`++  1. If desired replace `unicode.xml` with and updated version (you can download a copy from [here](http://www.w3.org/TR/xml-entity-names/#source)+  2. `xsltproc -o dictionary.xml operatorDictionary.xsl unicode.xml`+  3. `runghc generateMMLDict.hs`+  4. Replace the operator table at the bottom of `src/Text/TeXMath/Readers/MathML/MMLDict.hs` with the contents of `mmldict.hs`++## ToTeXMath.hs++You can find these files in `lib/totexmath/`++  1. If desired, replace `unimathsymbols.txt` with an updated version from [here](http://milde.users.sourceforge.net/LUCR/Math/)+  2. `runghc unicodetotex.hs`+  3. Replace the record table at the bottom of `src/Text/TeXMath/Unicode/ToTeXMath.hs` with the contents of `UnicodeToLaTeX.hs`++## ToUnicode.hs++You can find these files in `lib/tounicode/`.++  1. If desired, replace `UnicodeData.txt` with an updated verson from+     [here](ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt).+  2. `runghc mkUnicodeTable.hs`+  3. Replace the table at the bottom of+     `src/Text/TeXMath/Unicode/ToUnicode.hs` with the output.++## Editing the tables++It is not necessary to edit the source files to add records to+the tables.  To add to or modify a table it is easier to add+modify either `unicodetotex.hs` or `generateMMLDict.hs`. This is+easily achieved by adding an item to the corresponding `updates`+lists. After making the changes, follow the above steps to+regenerate the table.++# The test suite++To run the test suite, do `cabal test` or `stack test`.++In its standard mode, the test suite will run golden tests of+the individual readers and writers.  Reader tests can be found+in `test/reader/{mml,omml,tex}`, and writer tests in+`test/writer/{eqn,mml,omml,tex}`.  Regression tests linked+to specific issues are in `test/regression`.++Each test file consists of an input and an expected output.+The input begins after a line `<<< FORMAT` and the output+begins after a line `>>> FORMAT`.++If many tests fail as a result of changes, but the test+failures are all because of improvements in the output,+you can pass `--accept` to the test suite (e.g., with+`--test-arguments=--accept` on `stack test`), and the existing+golden files will be overwritten.  If you do this, inspect+the outputs very carefully to make sure they are correct.++If you pass the `--roundtrip` option into the test suite+(e.g., using `--test-arguments=--roundtrip` with `stack test`),+round-trip tests will be run instead.  Many of these will+fail. In these tests, the native inputs in `test/roundtrip/*.native`+will be converted to (respectively) `mml`, `omml`, or `tex`,+then converted back, and the result will be compared with the+starting point.  Although we don't guarantee that this kind+of round-trip transformation will be the identity, looking+at cases where it fails can be a guide to improvements.++# Authors++John MacFarlane wrote the original TeX reader, MathML writer, Eq+writer, and OMML writer.  Matthew Pickering contributed the+MathML reader, the TeX writer, and many of the auxiliary+modules.  Jesse Rosenthal contributed the OMML reader.  Thanks+also to John Lenz for many contributions.
− changelog
@@ -1,949 +0,0 @@-texmath (0.12.8.13)--  * Remove special override for `\perp` in Text.TeXMath.Readers.TeX.Commands-    (#247). This caused `\perp` to be read as U+22A5 instead of U+27C2.  This-    addresses the mismatch with the TeX writer (which associates `\bot` with-    U+22A5 and `\perp` with U+27C2).--  * Typst writer:--    + Fix several issues with accents and attachments (#245).-    + Fix handling of some EOver with combining accents (#245).-    + Escape backslash in text context (#245).--texmath (0.12.8.12)--  * TeX writer: render prime and superscripted prime as `'` (#246).--  * TeX reader:--    + Don't crash on array with `\hline` before blank cell (#244).-    + Skip whitespace in array column specifier (#244).--  * OMML writer:--    + Fix order of dPr attributes (#243).--  * Typst writer:--    + Escape commas (#242). Otherwise we can get bad results e.g. in fractions,-      when the commas separate arguments.--  * Require typst-symbols 0.1.7, update tests.--texmath (0.12.8.11)--  * TeX reader: Ignore `@{..}` and `!{..}` in array alignment specifiers (#241).--  * TeX reader: ignore `\color` instead of crashing (#225).--texmath (0.12.8.10)--  * TeX reader: allow `\lVert .. \vVert` to create an EDelimited (#238).--  * Typst writer: improved handling of primes (#239).-    Use `'` instead of e.g. `prime`. Don't put a space before primes.--  * Typst writer: improve rendering of EDelimited (#238).--  * Typst writer: use `mid()` for middle delimiters (#238).--texmath (0.12.8.9)--  * Parse TeX `\mathbf` as both bold and upright (#236).--texmath (0.12.8.8)--  * TeX reader: support unicode-math Greek symbols, e.g. `\Alpha` (#235).-    This includes symbols like `\Alpha` and `\omicron` that weren't-    defined in original TeX.--  * Use typst-symbols 0.1.6--texmath (0.12.8.7)--  * TeX reader: convert Bin symbols to Ord when appropriate (#234).-    E.g. in '-3', we should have an Ord rather than a Bin, so-    the spacing will be appropriate.--  * Pandoc writer: fix spacing inside EDelimited (#234).-    Previously spaces around binary operators were omitted when-    they occurred inside parens or brackets.--  * test-texmath: allow pandoc output.--texmath (0.12.8.6)--  * Typst writer: avoid redundant `lr`s (#233).--texmath (0.12.8.5)--  * Typst writer: use ASCII symbols when possible instead of symbols (#232).-    E.g., `+` instead of `plus`. Add `\` to characters needing escape.-    Enhance list of characters that need escaping.--  * Typst writer: fixed EBoxed output so it includes a border.--  * Handle `\ddot` better in conversion to typst (#231).--  * Use typst-symbols 0.1.5--texmath (0.12.8.4)--  * TeX reader: ignore `\allowbreak` (#230).--  * TeX reader: handle `*{5}{lr}` in array column specifier (#229).--  * OMML reader: allow `m:e` to be missing in `m:nary` (#228).-    Technically this is not allowed, according to the spec, but-    Word and LibreOffice seem to tolerate it.--texmath (0.12.8.3)--  * OMML writer: use "on" and "off" instead of "1" and "0" for-    m:CT_OnOff type.  It is said that "1" and "0" work in Word-    but not Powerpoint.--texmath (0.12.8.2)--  * Typst writer: use binom instead of a fraction (jgm/pandoc#9063).--texmath (0.12.8.1)--  * Typst writer: several fixes (#223, Lleu Yang).--    + Escape quotes (") in inQuotes-    + Accent `\8407` corresponds to `arrow()`-    + Write `#none`'s for matrices with blanks at the beginning of a row--texmath (0.12.8)--  * Expose Text.TeXMath.Shared [API change]--  * Typst writer: Fix bug where 's' turned into 'space' (#219).--  * Typst writer: Fix handling of overline (#214).--  * Typst writer: Fix underbrace (#217).--  * Typst writer: Improve some accents (#216).--  * TeX writer: don't include \\ on last line of matrix.--  * TeX writer: Remove escaping of spaces inside \text{}.-    It isn't needed, and it causes problems in MathJax rendering.--  * TeX reader: allow empty matrices.--  * MathML writer: Fix rendering of vectors (#218).--  * Depend on external typst-symbols package.--texmath (0.12.7.1)-- * Typst writer:--   + Improve under/overbrace/bracket/line.-   + Fix bugs with super/subscript grouping (#212).-   + Fix case where super/subscript is on an empty element,-     by inserting a zws.--texmath (0.12.7)--  * Add typst writer. New module: Text.TeXMath.Writers.Typst.--  * TeX reader: Support multilined environment. Closes #210.--texmath (0.12.6)--  * MathML writer:--    + Use style with CSS as well as columnalign (#205).-      This seems to be needed by browser implementations of MathML.-    + Remove reliance on mstyle (#205). mstyle doesn't seem to be-      supported any more, at least in browser implementations of MathML,-      and the documentation indicates that it is treated like mrow now-      that styles can go directly on child elements. This commit removes-      our use of mstyle. Instead of using mstyle, we change mathvariant-      attributes on descendent elements (and displaystyle attributes on-      direct children, in the case of fractions).-    + Extend our existing use of unicode replacements, since many-      implementations don't properly handle mathvariant. We now get-      variant characters for mo, mn, and all elements that can sensibly-      take them, not just mi and mtext.-    + Omit mathvariant attribute unless we can't find appropriate Unicode.-      When MathML is displayed by ODT, having BOTH a bold math Unicode-      character and a mathvariant="bold" attribute seems to confuse it.-      (Browsers don't care either way.) This gives us more compact and-      readable output, as well.--texmath (0.12.5.5)--  * Allow pandoc-types 1.23.--  * TeX reader: remove false positives for isConvertible (#204).-    "Convertible" symbols are those in which subscripts render-    under the symbol in display environments, and as subscripts-    in inline environments. Previously the TeX parser recognized-    all relation and binary symbols as convertible, which does not-    match TeX's behavior.--  * TeX reader: Support `\enspace` (#203).--texmath (0.12.5.4)--  * OMML reader: fix treatment of `eqArr` (#196).-    This change also includes a change to the TeX writer: any array-    with an alternating sequence of R,L alignments will be rendered-    as an aligned environment (not just a single [R,L] as currently).--  * OOML Writer: Add low line char ("_") to `isBarChar` (#193, Hagb).-    Closes jgm/pandoc#8152.--  * Eqn writer: use `-` for minus, `cdots` for cdots (#200).--texmath (0.12.5.3)--  * Eqn writer: avoid empty `{}` (#198).-    This causes an error, along the lines of-    ```-    eqn:<standard input>:73: error: syntax error-     context is-            } above { >>> } <<<-    ```-    which can be avoided if we use `{""}`.--texmath (0.12.5.2)--  * Fix bug in implementation of `\mspace` (#195).--texmath (0.12.5.1)--  * Compile texmath-server with `-threaded`.-    This should fix the crashes we have experienced.--  * Add apache style logging to web server.--  * Add more strictness in Unicode.ToTeX.--texmath (0.12.5)--  * TeX reader: Improve treatment of `\operatorname` (#147).-    We can now handle spaces, as in `\operatorname{arg\,max}`.-    We also now have a better fallback when the operator name-    contains content that can't be turned into plain text.-    (In this case, we just pass through the contents, since EMathOperator-    takes a text argument.)--  * TeX: Support more `\var...` commands for greek letters (Albert-    Krewinkel). AMSmath defines `\varGamma`, `\varDelta`, `\varTheta`,-    `\varLambda`, `\varXi`, `\varPi`, `\varSigma`, `\varUpsilon`, `\varPhi`,-    `\varPsi`, and `\varOmega`, all of which are now parsed as unicode-    characters *MATHEMATICAL ITALIC CAPITAL ...*.  Also, `\varsigma` is-    now parsed as *MATHEMATICAL SMALL FINAL SIGMA*.--  * OMML writer: better handling for scaled delimeter symbols (#140).-    We now try to represent these using m:d when possible.-    This allows the parentheses to expand with the content;-    previously we'd often get small parentheses with large-    contents.--  * OMML reader:--    + Allow m:pos to be missing or lack an attribute in m:bar (#187).-    + Set the default value of pos to "bot" (Maximilian Meier).-    + Implement support for noBar fractions (#191, Meimax).--  * Add servant-based server with a JSON API.--  * Remove old cgi directory.--  * Improve test suite (#189).  The existing test suite was a complicated-    mess, so that it was hard to add new tests.  (One of the problems-    was that the same files were used as golden files for reader-    tests and as sources for writer tests.) This commit shifts-    the same tests to a new, easier to understand format, so that-    it will be simple to add new tests in the future.  We now use-    the tasty test framework, and we use pretty-show to make the-    native golden tests easier to comprehend.--  * Add regression tests.--texmath (0.12.4)--  * TeX reader: handle hyperref better (#186).  We don't parse it as a link,-    but we pass its contents through rather than failing.--  * Update scripts and data in `lib/` directory. These are not build-    dependencies, but they were used to produce some of the large-    tables in the source code.  Fixed the scripts and Makefile to work-    with recent texmath and cabal.  Removed two very large unicode data-    files that can be downloaded when needed.  (This reduces the size of-    the source tarball considerably.) Remove `lib/toascii` (no longer used).--  * Update MMLDict using latest unicode.xml.--  * TeX reader: support siunitx `\qty`, `\qtyrange`, `\unit` (#185).--  * Remove Text.TeXMath.Compat.  We can now safely require mtl >= 2.2.1.--  * Use symbolMap from ToTeX to shorten the long hardcoded symbols list.-    Now we only hard-code items that differ what what is in symbolMap.-    This reduces the code size by thousands of lines.--  * Unicode.ToTeX: export `symbolMap` [API change].  This uses the data in-  `records` to create a backwards mapping from TeX commands to Exps (ESymbol-      elements).  This can replace most of the hardcoded list in the current-  TeX reader.--  * Split out TeXMath.Readers.TeX.Commands internal module.-    This makes the TeX reader shorter and should help compile times.--  * OMML reader: better handling of m:t nodes (#151).-    Previously we parsed an m:t element as an EIdentifier if it contains a-    single letter, but an EText TextNormal if it contains more than one.  This-    gave bad results in some cases.  It is better to reserve EText for the-    case where the m:nor property is specified for "normal text."--  * Require base >= 4.11.--  * Remove `network-uri` flag from stack.yaml.---texmath (0.12.3.3)--  * OMML writer: use nary only for operators supported by LibreOffice-    (Albert Krewinkel).  LibreOffice (and possibly Word, too) can handle-    only a small set of operators in an `nary` element.--  * TeX writer: use `\xleftarrow`, `\xrightarrow` where sensible-    (Albert Krewinkel).  The commands are generated for expressions over `←`-    or `→`. Besides being more idiomatic, this change also prevents the-    generation of invalid LaTeX, as `\leftarrow` and `\rightarrow` are not-    math operators and hence may not be followed by `\limit`.-    Both commands are part of amsmath.sty.--  * TeX reader:--    + Improve angled-bracket support (Albert Krewinkel).-      The amsmath package allows `\left<` and `\right>` as alternatives to-      `\left\langle` and `\right\rangle`, respectively.-    + Ignore stared version of `\tag` (Albert Krewinkel).-    + Support \dots{c,b,m,i,o} from amsmath (#179).-    + Change symbol returned for \dots{b,i,m} from `…` to `⋯`-      (Albert Krewinkel).--texmath (0.12.3.2)--  * OMML writer: remove m:nor element in math operators (#178).-    This caused the document's main font, rather than the math-    font, to be used in formatting operators, which is undesirable.--texmath (0.12.3.1)--  * MathML reader: don't allow mfenced attributes to inherit (#177).-    When open and close attributes aren't given on an mfenced,-    we should use defaults rather than inheriting these from a-    parent mfenced.--texmath (0.12.3)--  * TeX reader: implement logic to convert a Bin symbol to-    an Op to Op when it occurs at the beginning of a group,-    or after an Open, Pun, or Op symbol. This will give much-    better results for unary `-` (#176).--  * OMML writer: fixed rendering of EDelimited (#173).-    We now properly render "middles" (separators).--texmath (0.12.2)--  * MathML input: support mmultiscripts element (#158, #100).--  * Make MathML tag/attr recognition case-insensitive (#158).--  * Pandoc writer: better handling of styling such as `\mathrm` (#145).-    Previously identifiers were always italic, no matter what-    styling was applied.--  * Ignore `\tag` in TeX input (#162).--  * TeX writer: avoid unneeded `\left` and `\right` for delimited.-    We don't need `\left` and `\right` when the contents are-    "standard height."--  * TeX reader: parse implicit EDelimited sections (#172).-    We now parse `(x)` as EDelimited, even though `\right` and `\left`-    are not used.--texmath (0.12.1.1)--  * Fix compilation with GHC-9.0.1 (#169, Simon Jakobi).-    Background:-    https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption-  * Add eqn to online demo.-  * Improve error messages for unknown control sequences, and restructure-    tex parser to be more efficient (#167).--texmath (0.12.1)--  * OMML writer: explicitly mark symbols as non-italic (#109).-    Otherwise, for some reason, they appear as italic by default.-  * Improve error messages in reading tex arrays.-  * Improve support for `\bmod`, `\mod`, etc. (#165).-    Allow them to take complex arguments like `\left( 1 \right)`.-  * Improve support for `\genfrac` (#164).-  * Ignore `\textstyle`, `\scriptstyle`, `\scriptscriptstyle`,-    as we currently ignore `\displaystyle`.-  * Parse siunitx commands in reading tex (#157).-  * Improve handling of `\not` in reading tex (#161).-    Previously we only handled `\not` in front of certain symbols.-  * Support `\pod` and `\pmod` and clean up spacing and font for-    `\mod` and `\bmod` (#160).--texmath (0.12.0.3)--  * Allow pandoc-types 1.22.--texmath (0.12.0.2)--  * Allow pandoc-types 1.21.-  * Pandoc output: omit empty Emph for sub/superscript without base (#155).-  * tex writer: Use `\overline{\overline{B}}` instead of unicode-    double line accent (#153).--texmath (0.12.0.1)--  * OMML writer: Fix overline and accent rendering (#152).-  * OMML reader: Fix dropped arrows (#153). Add tests.--texmath (0.12)--  * Use Text instead of String in data types and functions-    (Christian Despres) [API change].  Note that there are still a few-    places where we unpack Text to String with a view pattern:-    performance could likely be increased with further rewriting.-  * Avoid use of !! with negative index (jgm/pandoc#5853).--texmath (0.11.3)--  * Use error instead of fail to allow building with ghc 8.8.-  * Test output: remove superfluous spaces after control sequences,-    superfluous groups, and unicode VARIATION SELECTOR 1.-  * renderTeX: add space between control sequence and any non-ASCII-    character.  There are differences in behavior of isAlphaNum between-    different ghc versions that would affect test output otherwise.-  * charToLaTeXString: Ignore 65024 VARIATION SELECTOR 1 to avoid putting-    it literally in the output ; it is used in mathml output and occurs-    in many of the test cases.-  * Add cabal.project.-  * Use actions rather than travis for CI.--texmath (0.11.2.3)--  * OMML reader: properly distinguish normal text from math (#136).-    If `m:nor` or `m:lit` is set in `m:rPr`, we interpret the-    contents as literal text and not as math.-  * TeX reader: use different symbol (`_`) for `\underline` (#142).-    This gets the right accent properties on MathML output, so-    that the underline is not lower than it should be.-  * TeX reader: Treat `\bmod` as a relational symbol rather than-    an operator (#143).  This fixes spacing problems in several-    output formats.--texmath (0.11.2.2)--  * OMML writer: use m:nor for normal text (#135).--texmath (0.11.2.1)--  * OMML reader: Don't collapse `fName` to a string (#133).-    This fixes cases where fName has some complexity, e.g.-    a subscript or limit.--texmath (0.11.2)--  * Improved handling of \mathop etc (#126).  We now allow operators like-    `arg\,min`, converting the space into unicode.-  * Support \hspace (#126).-  * Support \hdots as synonym of \ldots (#126).-  * Support \mathds (#126).-  * In parsing array, ignore `|` in column specs (#127).-    We have no way to represent this in EArray, currently.-    Ignoring them seems better than failing altogether.--texmath (0.11.1.2)--  * Eqn writer: properly escape `{` and `}`.-  * Set more accurate bounds (Herbert Valerio Riedel).--texmath (0.11.1.1)--  * Fix building with ghc-8.6.1 by removing need for now missing-    MonadFail instances (Jonas Scholl).-  * TeX reader: Allow operators like `/` to be scaled (#120).-  * TeX reader: Improved efficiency of basicEnclosure.-  * TeX reader: Handle `\bmod` (#115).--texmath (0.11.1)--  * OMML writer: Use m:acc for accents in OMML (#119).  This fixes-    some spacing issues for e.g. the translation of `\dot{m}`.--texmath (0.11.0.1)--  * OMML writer: use zero-width space to avoid dashed box (#118).-    In Word, a dashed box shows up for empty text runs in-    exponents and bases, or empty exponents and bases.  So-    we use a zero-width space in these contexts.--texmath (0.11)--  * Changed treatment of non-ASCII characters.-    Previously we ensured that the output of conversion to tex-    was pure ASCII.  This meant rendering "ä" as "a", for-    example, and it meant that many characters (e.g. Chinese)-    simply got replaced with an empty string, while others-    got replaced with "[?]".--    This was not a particularly helpful behavior.  Including-    the unicode characters verbatim doesn't interfere with-    latex compilation.  They often won't show up in the generated-    math, but that is no worse than what happened before.--    This change passes through unicode characters unchanged-    when they can't be converted to standard LaTeX commands.--    An important reason for including the unicode characters-    is that pandoc uses TeX to represent math in its AST.-    So, for example, if you convert HTML with mathml to docx,-    you'll currently lose all Chinese characters, since they'll-    disappear in the TeX intermediary, even though a direct-    mathml to ooml conversion would have passed them through.-    With this change, these conversions will work better-    (see jgm/pandoc#4642).--    + Removed Text.TeXMath.Unicode.ToASCII (API change).-    + Removed cbits that were needed for that module.-    + Modified Tex.TeXMath.Unicode.ToTeX to pass through-      unicode characters that can't be converted, rather-      than trying to asciify them or remove them.--  * Render degree symbol in tex as `{^\circ}`.--texmath (0.10.1.2)--  * eqn writer:  use uppercase letters in unicode escapes (jgm/pandoc#4597).--texmath (0.10.1.1)--  * Handle multicharacter operators better in Eqn, TeX, OMML (#109).--  * OMML reader: unwrap `<w:...>` tags immediately under `<m:oMath>`-    (#111, Jesse Rosenthal).--texmath (0.10.1)--  * Expose Text.TeXMath.TeX (TeX rendering functions) (#108).-    This is needed in order to use getTeXMath from Text.TeXMath.Unicode.ToTeX.-  * Pandoc writer: don't insert punctuation space before explicit space-    (#107).  E.g. in `2,\!4`.-  * Fix end-line command ('\\') in AMSmath environments (ARATA Mizuki).-    The end-line command in AMSmath environments does not allow spaces-    before its optional argument.-  * Use `\in` for SMALL ELEMENT OF in "base" (Vaclav Haisman).--texmath (0.10)--  * Use `\ni` in base for U+220D (#103).-  * Improved unicode -> tex symbol lookup.  Previously we had many-    cases where the lookup table would map a unicode character to-    the empty string for the base package, and this would print finding-    a good match in another package in the environment.-  * Added support for `\symbf` (#101).-  * Revert "migrating the lookup structures for Unicode/ToTex.hs to-    use C source files to accelerate builds."  This change gave us somewhat-    faster builds (using less memory), but at a huge cost of-    maintainability.-  * Removed AlignDefault from Alignment (API change, #102).-    AlignDefault doesn't make sense for a converter between-    formats that may have different defaults.  We now properly treat-    centering as the default in MathML and OMML input.--texmath (0.9.4.4)--  * Update tests that should have been updated for 0.9.4.3.--texmath (0.9.4.3)--  * MathML writer: put linethickness attribute directly on mfrac-    element. This fixes binomial rendering.--texmath (0.9.4.2)--  * Pandoc writer: better handle accented characters (jgm/pandoc#3922).--texmath (0.9.4.1)--  * Improved handling of accents and upper/lower delimiters (#98).-  * cgi: use cloudflare cdn for mathjax.--texmath (0.9.4)--  * Added writer for GNU eqn format (used with *roff).--    + New module Text.TeXMath.Writers.Eqn, exporting writeEqn.-    + Moved handleDownup to Shared.-    + Add eqn output option in texmath executable.-    + Add eqn writer tests.--texmath (0.9.3)--  * Expose pMacroDefinition in Text.TeXMath.Readers.TeX.Macros,-    with generalized type.--texmath (0.9.2)--  * Support `\newenvironment` and `\renewenvironment`.--texmath (0.9.1.1)--  * Added program to generate cbits/{key,val}ToASCII.c from a data file.-  * Migrate lookup structures for Unicode/ToTex.hs to use C-    source files to accelerate builds (Carter Tazio Schonwald).-  * Allow \boldsymbol + a token without braces.-    And same for other styling commands. Closes #94.-  * Better ghc-prof-options.--texmath (0.9.1)--  * Pandoc writer:  add thin space after math operators.-  * TeX reader: improve parsing of `\mathop` to allow-    multi-character operator names.-  * Minor optimizations.-  * Added Ord instances to Exp and associated types.--texmath (0.9)--  * OMML writer: Properly handle nary inside delimiters (#92).-    Previously under-overs inside delimiters didn't get-    converted to nary the way they did outside of delimiters.-  * TeX reader: Support bm, mathbold, pmd.-  * OMML reader: Handle w:sym (#65).-  * New module, Text.TeXMath.Unicode.Fonts, for MS font code point-    lookup.  Copied from pandoc Text.Pandoc.Readers.Docx.Fonts,-    which will be changed to import this.  [API change]-  * Fixed typo in test program for round-trip tests.-  * Parse math inside text constructions (#62).  E.g.-    `\text{if $y$ is greater than $0$}` Text and math can nest indefinitely.-  * Modify test suite so tests can be marked as "ought to raise error."-    So far this is only used in mml.  If the test is called foo-    and `readers/mml/foo.error` exists, then the test is expected-    to raise a parse error.-  * MathML reader err: Don't print colon after line number.-  * Restore proper error handling to MathML reader.  Note that the tests-    need to be redone, since they assumed the old behavior of just-    returning empty elements on parse errors.--texmath (0.8.6.7)--  * TeX reader: treat backslash + newline as like backslash + space.-    Previously this case gave an error.  See jgm/pandoc#3189.--texmath (0.8.6.6)--  * Allow pandoc-types 1.17.*.--texmath (0.8.6.5)--  * Fixed transposition of sub/super on operators (jgm/pandoc#3040).--texmath (0.8.6.4)--  * Support 'equation' environment, without the numbering of course.--texmath (0.8.6.3)--  * Use POST instead of GET for texmath-cgi.--texmath (0.8.6.2)--  * Fixed array alignment issues (jgm/pandoc#2864, jgm/pandoc#2310).-  * Use 1 and 0 for _Hide attributes, rather than on and off.-    Officially it seems that either 1/0 or true/false are wanted.-  * Fixed EUnderOver for omml output.  Previously both the under and-    the over part were being placed under (jgm/pandoc#2775).--texmath (0.8.6.1)--  * OMML writer:  Fixed rendering of roots, so that the degree appears-    in the right place.-  * OMML writer:  Don't include empty rPr elements.--texmath (0.8.6)--  * TeX reader: Support hundreds more math symbols (all of those defined in-    Text.TeXMath.Unicode.ToTeX), including `\nwarrow`, `\swarrow`,-    `\nearrow`, `\searrow` (#90).--texmath (0.8.5.1)--  * OMML writer: Fixed order of elements in nary formulas to conform-    to OMML spec (#88, Niko Weh).  `<e>` must follow the `<sup>` and `<sub>`-    parts of `<nary>`. This fixes rendering issues in LibreOffice-    (though Word copes with the incorrect order).-  * Added Paths_texmath to Other-Modules for texmath executable.--texmath (0.8.5)--  * TeX parser: Support limited styling inside \DeclareMathOperator (#85).-  * TeX reader: Correctly parse \mbox.  Its argument is text mode.-  * Updated mathml tests to use mo for operators.-  * TeX reader: support mathopen, mathclose, mathpunct.-  * MathML writer: render EMathOperator as mo, not mi (#86).-  * MathML: handle leading space in EText (#87).-  * Take --version in executable from cabal metadata.-  * Added Paths_texmath to other-modules.--texmath (0.8.4.2)--  * Fixed overbrace, underbrace (#82).  Previously we were using the wrong-    character: U+FE37 instead of U+23DE.  This didn't work in Word.-  * Support \mathop, \mathrel, \mathbin, \mathord-  * MathML - render Symbol Ord as mi, not mo (#83).-  * Handle align environments with > 2 cells per row (#84).--texmath (0.8.4.1)--  * Added stack install instructions.-  * Fixed bold-italic in OMML (#76).  Previously `\mathbfit` didn't work-    properly in OMML output.-  * Ignore `\nonumber` (#79).-  * Allow styling in `\operatorname` e.g. `\operatorname{\mathcal{L}}` (#80).-  * Fixed bug in `supHide` and `subHide` for OMML.  This  led to little-    empty boxes being displayed in integrals with subscripts but no-    superscripts.  See jgm/pandoc#2571.-  * Implemented `\mod` as a math operator (#81).  This doesn't capture all the-    spacing subtleties of the amsmath version, but should be good enough-    for most purposes.-  * Allow pandoc-types < 1.17.--texmath (0.8.4)--  * Improved symbol spacing in Pandoc output (jgm/pandoc#2261).-    This change avoids putting space around binary symbols that-    come at the beginning or end of a group, or appear on their-    own.  It also avoids spacing on a binary symbol that follows-    a Bin, Op, Rel, Open, or Punct atom, in accord with-    TeXBook Appendix G.  We could go farther towards exactly-    matching the TeXBook rules, but this simple change goes some of-    the way.-  * Added stack.yaml.--texmath (0.8.3)--  * Parse uppercase Greek letters as EIdentifier, not ESymbol Op.-    This fixes handling of things like `$Lambda^1$`, particularly in omml.--texmath (0.8.2.2)--  * Handle `.` after number with no following digits.--texmath (0.8.2.1)--  * Handle bare hyphen in `\text{...}`.  Closes jgm/pandoc#2274.-  * Support `\ltimes` and `\rtimes` in the TeX reader (Arata Mizuki).-  * Slightly more efficient number parser.--texmath (0.8.2)--  * Better handling of decimal points. Decimal points are now parsed-    as parts of numbers, not as separate symbols.  E.g. in MathML they-    now appear in `<mn>` elements.  Closes #74.--texmath (0.8.1)--  * OMML: Don't force everything into Roman font by default.-    This change ensures that variables will be italic by-    default in Word.  See jgm/pandoc#2075.--texmath (0.8.0.2)--  * Fixed typo in `defaultEnv` to include `amssymb` (#68).-  * Moved some lookup tables to C, and disabled aggressive-    profiling defaults, to avoid excessive memory usage in-    compiling with clang (#70).-  * Support `\newcommand*` in `parseMacroDefinition` (jgm/pandoc#2005).-  * Fixed order bug for over/under in OMML reader (#66).-  * Support `\boldsymbol` (#67).--texmath (0.8.0.1)--  * Added network-uri flag. This addresses the split of network-    and network-uri packages.-  * OMML reader: change default accent (Jesse Rosenthal).-    The default had previously been set as accute (possibly as a-    placeholder). It appears to be circumflex/hat instead.--texmath (0.8)--  * Added OMML reader (Jesse Rosenthal).-  * Support latex \substack (#57).-  * Added EBoxed and implemented in readers and writers (#58).-  * Handle latex \genfrac.  Use \genfrac for \brace, \brack,-    etc. when amsmath is available.-  * Improvements in handling of space characters.-  * Use ESpace rather than EText when a mathml mtext just contains-    a space.-  * Use \mspace when needed to get latex spaces with odd sizes, rather-    than finding the closest simple command.-  * Use Rational instead of Double in ESpaced, EScaled.-  * Shared: Export getSpaceWidth, getSpaceChars.-  * Shared: Export fixTree, isEmpty, empty (formerly in MathML reader).--texmath (0.7.0.2)--  * TeX reader:  further improvements in error reporting.-    Instead of reporting line and column, a snippet is printed-    with a caret indicating the position of the error.  Also-    fixed bad position information when control sequences are-    followed by a letter.--texmath (0.7.0.1)--  * TeX reader:--    + Improved error reporting.-    + Optimized parser.-    + Treat `\ ` as ESpaced rather than ESymbol.-    + Internal improvements, including using the parsec3 interface-      instead of the older parsec2 compatibility interface.--  * Added tests for phantom.--texmath (0.7)--  * Changes in Exp type:--    + Removed EUp, EDown, EDownup, EUnary, EBinary.-    + Added EFraction (and FractionType), ESqrt, Eroot, EPhantom.-    + Added boolean "convertible" parameter to EUnder, EOver, EUnderover.-    + Changed parameter of EScaled from String to Double.-    + Changed parameter of ESpace from String to Double.-    + Removed EStretchy.-    + Added EStyled, corresponding to mstyle in mathml, and \mathrm,-      \mathcal, etc. in TeX (which can contain arbitrary math content,-      not just text).-    + Changed the type of EDelimited.  The contents of an EDelimited are-      now either Right Exp or Left String (the latter case represents a-      fence in middle position, e.g. \mid| in LaTeX).--  * Module reorganisation:  the exposed interface has been completely-    changed, and modules for reading MathML and writing TeX math-    have been added:--    + All writers now reside in Text.TeXMath.Writers.-        - Text.TeXMath.MathML -> Text.TeXMath.Writers.MathML.-          toMathML and showExp are removed, writeMathML added.-        - Text.TeXMath.OMML -> Text.TeXMath.Writers.OMML.-          toOMML and showExp removed, writeOMML added.-        - Text.TeXMath.Pandoc -> Text.TeXMath.Writers.Pandoc.-          toPandoc removed, writePandoc added.-        - New module Text.TeXMath.Writers.TeX, exporting writeTeX,-          writeTeXWith, addLaTeXEnvironment (the latter giving control-          over which packages are assumed to be available).--    + All readers now reside in Text.TeXMath.Readers.-        - Text.TeXMath.MathMLParser -> Text.TeXMath.Readers.MathML,-	  exporting readMathML.-        - Text.TeXMath.Readers.TeX nows exports readTeX rather than-          parseFormula.--    + New modules for unicode conversion: Text.TeXMath.Unicode.ToASCII,-      Text.TeXMath.Unicode.ToTeX, Text.TeXMath.Unicode.ToUnicode.--    + Two MathML specific modules: Text.TeXMath.Readers.MathML.EntityMap,-      Text.TeXMath.Readers.MathML.MMLDict.--    + In Text.TeXMath, all the XtoY functions have been removed-      in favour of rexporting raw reader and writer functions. The-      data type Exp is now also exported.--  * Bug fixes and improvements.--    + TeX writer: Properly handle accents inside \text{}.-      Use real text environments for EText (\textrm, not \mathrm).-      Improved handling of scalers (\Big etc.).  Use amsmath matrix-      environments when appropriate.  Fixed \varepsilon.-    + MathML writer:  Omit superfluous outer mrows.  Add position-      information to fences.-    + OMML writer:  Handle \phantom.-    + Pandoc writer:  Use unicode characters to support Fraktur and-      other text styles.-    + TeX reader:  Use EUnder/Over for \stackrel, \overset, \underset.-      Improved handling of primes.  Fixed \notin.  Avoid superfluous-      grouping of single elements.  Improved handling of scalers (\Big etc.).-      Handle \choose, \brace, \brack, \bangle (#21).-    + Macros:  Don't raise an error if applying a macro fails to-      resolve to a fixed point; instead, just return the original string.--  * Rewrote test suite as a proper cabal test suite.  Added-    --regenerate-tests and --round-trip options.--  * Updated texmath online demo for bidirectional conversion.--  * Removed cgi and test flags.  Added executable flag to build texmath.--  * Modified texmath so it works like a cgi script when run as-    texmath-cgi (through symlink or renaming).  Removed dependency on-    the cgi package.--texmath (0.6.7)--  * New Module: Text.TeXMath.Unidecode, a module for approximating-    unicode characters in ASCII.-  * New Module: Text.TeXMath.Shared, a module for shared lookup-    tables between the various readers and writers-  * New Module: Text.TeXMath.MathMLParser, exporting readMathML.-  * New Module: Text.TeXMath.EntityMap, exporting getUnicode,-    a conversion table from MathML entities to unicode characters.-  * New Module: Text.TeXMath.UnicodeToLaTeX, exporting getLaTeX,-    converting a string of unicode characters to a string of equivalent LaTeX-    commands.-  * New Module: Text.TeXMath.LaTeX, replacing Text.TeXMath.Parser,-    exporting toTeXMath.-  * New Module: Text.TeXMath.MMLDict, implements a lookup table from-    operators to their default values as defined by the MML dictionary,-    exporting getOperator.-  * New Module: Text.TeXMath.Compat, maintaining compatibility with-    mtl < 2.2.1.-  * Modified Text.TeXMath to export the primitive readers, as well as-    mathMLTo{Writer} for all writers-  * Modified: Text.TeXMath.Types: added additional record types for-    Text.TeXMath.MMLDict and Text.TeXMath.UnicodeToLaTeX.-    New Exports: Operator(..), Record(..).-  * Modified test suite:  use cabal test, added significant number of tests.-  * Added recognition of the LaTeX command \phantom--texmath (0.6.6.3)--  * Use combining tilde accent for \tilde.  Closes pandoc #1324.--texmath (0.6.6.2)--  * Allow \left to be used with ), ], etc.  Ditto with \right.-    Previously only (, [, etc. were allowed with \left.  Closes pandoc #1319.--texmath (0.6.6.1)--  * Support \multline (previously it was mispelled "multiline")-  * Changed data-files to extra-source-files.--texmath (0.6.6)--  * Insert braces around macro expansions to prevent breakage (#7).-  * Support \operatorname and \DeclareMathOperator (rekka) (#17).-  * Support \providecommand (#15).-  * Fixed spacing bugs in pandoc rendering (#24).-  * Ignore \hline at end of array row instead of failing (#19).-
+ changelog.md view
@@ -0,0 +1,1005 @@+texmath (0.12.9)++  * Better handling of primes in eqn, typst, and tex writers.+    These writers now render a superscript containing prime+    characters using a sequence of `'` characters, e.g.+    `f''`. This syntax is supported by all three formats.++  * Use Planck constant for italic h in unicodeTable. There is no+    regular italic h in Unicode because this already existed in Planck+    constant.++  * Text.TeXMath.Shared: expose `isRLSequence` and `toPrimes` and+    new function `isUpppercaseGreek` [API change, non-breaking].++  * OMML reader: consolidate adjacent texts with same style.+    This affects EStyled and EText elements. This way we get+    `\mathbf{123abc456}` in LaTeX output instead of+    `\mathbf{123}\mathbf{abc}\mathbf{456}`. See+    https://github.com/jgm/pandoc/discussions/10560 for discussion.++  * OMML writer:++    + Use `m:eqArr` rather than `m:m` for arrays with alternating+      right, left alignments (#209). (In other writers, TeX and MathML,+      we presume that these are aligned equations.)+    + Fix order of `scr` and `sty` elements (#253).+    + Use upright style by default for uppercase Greek.++  * MathML reader: properly handle `mmultiscripts` (#252).++  * MathML writer:++    + Improve formatting of aligned equations (#207).+      An EArray with alternating R,L alignments will be assumed+      to be aligned equations and rendered without padding.+    + Use `mi` for EMathOperator. Also: insert the unicode 0x2061+      "function application" character after a math operator, unless+      it's already there. Ensure that all 0x2061 characters are in+      `mo` rather than `mi`.+    + Use upright style for uppercase Greek by default (#255).+    + Fix invalid `displaystyle` attribute. The attribute goes on+      enclosing mstyle, not directly on `mfrac`.++  * TeX reader:++    + Parse primes as superscripts (#254). This seems to be+      how TeX behaves under the hood: `f'` is equivalent to `f^{\prime}`.+    + Avoid implicit pairing of delimiters (reverts #172).+    + Use `EIdentifier` instead of `ESymbol Alpha` for `\ell`, etc (#256).+    + Use Pun for primes in TeX reader, revise type of `toPrimes`.+      This will ensure that `mo` is used for primes in MathML.++  * test-texmath: allow `mathml` in addition to `mml` to specify mathml.++  * Add `binpath` Makefile target.++texmath (0.12.8.13)++  * Remove special override for `\perp` in Text.TeXMath.Readers.TeX.Commands+    (#247). This caused `\perp` to be read as U+22A5 instead of U+27C2.  This+    addresses the mismatch with the TeX writer (which associates `\bot` with+    U+22A5 and `\perp` with U+27C2).++  * Typst writer:++    + Fix several issues with accents and attachments (#245).+    + Fix handling of some EOver with combining accents (#245).+    + Escape backslash in text context (#245).++texmath (0.12.8.12)++  * TeX writer: render prime and superscripted prime as `'` (#246).++  * TeX reader:++    + Don't crash on array with `\hline` before blank cell (#244).+    + Skip whitespace in array column specifier (#244).++  * OMML writer:++    + Fix order of dPr attributes (#243).++  * Typst writer:++    + Escape commas (#242). Otherwise we can get bad results e.g. in fractions,+      when the commas separate arguments.++  * Require typst-symbols 0.1.7, update tests.++texmath (0.12.8.11)++  * TeX reader: Ignore `@{..}` and `!{..}` in array alignment specifiers (#241).++  * TeX reader: ignore `\color` instead of crashing (#225).++texmath (0.12.8.10)++  * TeX reader: allow `\lVert .. \vVert` to create an EDelimited (#238).++  * Typst writer: improved handling of primes (#239).+    Use `'` instead of e.g. `prime`. Don't put a space before primes.++  * Typst writer: improve rendering of EDelimited (#238).++  * Typst writer: use `mid()` for middle delimiters (#238).++texmath (0.12.8.9)++  * Parse TeX `\mathbf` as both bold and upright (#236).++texmath (0.12.8.8)++  * TeX reader: support unicode-math Greek symbols, e.g. `\Alpha` (#235).+    This includes symbols like `\Alpha` and `\omicron` that weren't+    defined in original TeX.++  * Use typst-symbols 0.1.6++texmath (0.12.8.7)++  * TeX reader: convert Bin symbols to Ord when appropriate (#234).+    E.g. in '-3', we should have an Ord rather than a Bin, so+    the spacing will be appropriate.++  * Pandoc writer: fix spacing inside EDelimited (#234).+    Previously spaces around binary operators were omitted when+    they occurred inside parens or brackets.++  * test-texmath: allow pandoc output.++texmath (0.12.8.6)++  * Typst writer: avoid redundant `lr`s (#233).++texmath (0.12.8.5)++  * Typst writer: use ASCII symbols when possible instead of symbols (#232).+    E.g., `+` instead of `plus`. Add `\` to characters needing escape.+    Enhance list of characters that need escaping.++  * Typst writer: fixed EBoxed output so it includes a border.++  * Handle `\ddot` better in conversion to typst (#231).++  * Use typst-symbols 0.1.5++texmath (0.12.8.4)++  * TeX reader: ignore `\allowbreak` (#230).++  * TeX reader: handle `*{5}{lr}` in array column specifier (#229).++  * OMML reader: allow `m:e` to be missing in `m:nary` (#228).+    Technically this is not allowed, according to the spec, but+    Word and LibreOffice seem to tolerate it.++texmath (0.12.8.3)++  * OMML writer: use "on" and "off" instead of "1" and "0" for+    m:CT_OnOff type.  It is said that "1" and "0" work in Word+    but not Powerpoint.++texmath (0.12.8.2)++  * Typst writer: use binom instead of a fraction (jgm/pandoc#9063).++texmath (0.12.8.1)++  * Typst writer: several fixes (#223, Lleu Yang).++    + Escape quotes (") in inQuotes+    + Accent `\8407` corresponds to `arrow()`+    + Write `#none`'s for matrices with blanks at the beginning of a row++texmath (0.12.8)++  * Expose Text.TeXMath.Shared [API change]++  * Typst writer: Fix bug where 's' turned into 'space' (#219).++  * Typst writer: Fix handling of overline (#214).++  * Typst writer: Fix underbrace (#217).++  * Typst writer: Improve some accents (#216).++  * TeX writer: don't include \\ on last line of matrix.++  * TeX writer: Remove escaping of spaces inside \text{}.+    It isn't needed, and it causes problems in MathJax rendering.++  * TeX reader: allow empty matrices.++  * MathML writer: Fix rendering of vectors (#218).++  * Depend on external typst-symbols package.++texmath (0.12.7.1)++ * Typst writer:++   + Improve under/overbrace/bracket/line.+   + Fix bugs with super/subscript grouping (#212).+   + Fix case where super/subscript is on an empty element,+     by inserting a zws.++texmath (0.12.7)++  * Add typst writer. New module: Text.TeXMath.Writers.Typst.++  * TeX reader: Support multilined environment. Closes #210.++texmath (0.12.6)++  * MathML writer:++    + Use style with CSS as well as columnalign (#205).+      This seems to be needed by browser implementations of MathML.+    + Remove reliance on mstyle (#205). mstyle doesn't seem to be+      supported any more, at least in browser implementations of MathML,+      and the documentation indicates that it is treated like mrow now+      that styles can go directly on child elements. This commit removes+      our use of mstyle. Instead of using mstyle, we change mathvariant+      attributes on descendent elements (and displaystyle attributes on+      direct children, in the case of fractions).+    + Extend our existing use of unicode replacements, since many+      implementations don't properly handle mathvariant. We now get+      variant characters for mo, mn, and all elements that can sensibly+      take them, not just mi and mtext.+    + Omit mathvariant attribute unless we can't find appropriate Unicode.+      When MathML is displayed by ODT, having BOTH a bold math Unicode+      character and a mathvariant="bold" attribute seems to confuse it.+      (Browsers don't care either way.) This gives us more compact and+      readable output, as well.++texmath (0.12.5.5)++  * Allow pandoc-types 1.23.++  * TeX reader: remove false positives for isConvertible (#204).+    "Convertible" symbols are those in which subscripts render+    under the symbol in display environments, and as subscripts+    in inline environments. Previously the TeX parser recognized+    all relation and binary symbols as convertible, which does not+    match TeX's behavior.++  * TeX reader: Support `\enspace` (#203).++texmath (0.12.5.4)++  * OMML reader: fix treatment of `eqArr` (#196).+    This change also includes a change to the TeX writer: any array+    with an alternating sequence of R,L alignments will be rendered+    as an aligned environment (not just a single [R,L] as currently).++  * OOML Writer: Add low line char ("_") to `isBarChar` (#193, Hagb).+    Closes jgm/pandoc#8152.++  * Eqn writer: use `-` for minus, `cdots` for cdots (#200).++texmath (0.12.5.3)++  * Eqn writer: avoid empty `{}` (#198).+    This causes an error, along the lines of+    ```+    eqn:<standard input>:73: error: syntax error+     context is+            } above { >>> } <<<+    ```+    which can be avoided if we use `{""}`.++texmath (0.12.5.2)++  * Fix bug in implementation of `\mspace` (#195).++texmath (0.12.5.1)++  * Compile texmath-server with `-threaded`.+    This should fix the crashes we have experienced.++  * Add apache style logging to web server.++  * Add more strictness in Unicode.ToTeX.++texmath (0.12.5)++  * TeX reader: Improve treatment of `\operatorname` (#147).+    We can now handle spaces, as in `\operatorname{arg\,max}`.+    We also now have a better fallback when the operator name+    contains content that can't be turned into plain text.+    (In this case, we just pass through the contents, since EMathOperator+    takes a text argument.)++  * TeX: Support more `\var...` commands for greek letters (Albert+    Krewinkel). AMSmath defines `\varGamma`, `\varDelta`, `\varTheta`,+    `\varLambda`, `\varXi`, `\varPi`, `\varSigma`, `\varUpsilon`, `\varPhi`,+    `\varPsi`, and `\varOmega`, all of which are now parsed as unicode+    characters *MATHEMATICAL ITALIC CAPITAL ...*.  Also, `\varsigma` is+    now parsed as *MATHEMATICAL SMALL FINAL SIGMA*.++  * OMML writer: better handling for scaled delimeter symbols (#140).+    We now try to represent these using m:d when possible.+    This allows the parentheses to expand with the content;+    previously we'd often get small parentheses with large+    contents.++  * OMML reader:++    + Allow m:pos to be missing or lack an attribute in m:bar (#187).+    + Set the default value of pos to "bot" (Maximilian Meier).+    + Implement support for noBar fractions (#191, Meimax).++  * Add servant-based server with a JSON API.++  * Remove old cgi directory.++  * Improve test suite (#189).  The existing test suite was a complicated+    mess, so that it was hard to add new tests.  (One of the problems+    was that the same files were used as golden files for reader+    tests and as sources for writer tests.) This commit shifts+    the same tests to a new, easier to understand format, so that+    it will be simple to add new tests in the future.  We now use+    the tasty test framework, and we use pretty-show to make the+    native golden tests easier to comprehend.++  * Add regression tests.++texmath (0.12.4)++  * TeX reader: handle hyperref better (#186).  We don't parse it as a link,+    but we pass its contents through rather than failing.++  * Update scripts and data in `lib/` directory. These are not build+    dependencies, but they were used to produce some of the large+    tables in the source code.  Fixed the scripts and Makefile to work+    with recent texmath and cabal.  Removed two very large unicode data+    files that can be downloaded when needed.  (This reduces the size of+    the source tarball considerably.) Remove `lib/toascii` (no longer used).++  * Update MMLDict using latest unicode.xml.++  * TeX reader: support siunitx `\qty`, `\qtyrange`, `\unit` (#185).++  * Remove Text.TeXMath.Compat.  We can now safely require mtl >= 2.2.1.++  * Use symbolMap from ToTeX to shorten the long hardcoded symbols list.+    Now we only hard-code items that differ what what is in symbolMap.+    This reduces the code size by thousands of lines.++  * Unicode.ToTeX: export `symbolMap` [API change].  This uses the data in+  `records` to create a backwards mapping from TeX commands to Exps (ESymbol+      elements).  This can replace most of the hardcoded list in the current+  TeX reader.++  * Split out TeXMath.Readers.TeX.Commands internal module.+    This makes the TeX reader shorter and should help compile times.++  * OMML reader: better handling of m:t nodes (#151).+    Previously we parsed an m:t element as an EIdentifier if it contains a+    single letter, but an EText TextNormal if it contains more than one.  This+    gave bad results in some cases.  It is better to reserve EText for the+    case where the m:nor property is specified for "normal text."++  * Require base >= 4.11.++  * Remove `network-uri` flag from stack.yaml.+++texmath (0.12.3.3)++  * OMML writer: use nary only for operators supported by LibreOffice+    (Albert Krewinkel).  LibreOffice (and possibly Word, too) can handle+    only a small set of operators in an `nary` element.++  * TeX writer: use `\xleftarrow`, `\xrightarrow` where sensible+    (Albert Krewinkel).  The commands are generated for expressions over `←`+    or `→`. Besides being more idiomatic, this change also prevents the+    generation of invalid LaTeX, as `\leftarrow` and `\rightarrow` are not+    math operators and hence may not be followed by `\limit`.+    Both commands are part of amsmath.sty.++  * TeX reader:++    + Improve angled-bracket support (Albert Krewinkel).+      The amsmath package allows `\left<` and `\right>` as alternatives to+      `\left\langle` and `\right\rangle`, respectively.+    + Ignore stared version of `\tag` (Albert Krewinkel).+    + Support \dots{c,b,m,i,o} from amsmath (#179).+    + Change symbol returned for \dots{b,i,m} from `…` to `⋯`+      (Albert Krewinkel).++texmath (0.12.3.2)++  * OMML writer: remove m:nor element in math operators (#178).+    This caused the document's main font, rather than the math+    font, to be used in formatting operators, which is undesirable.++texmath (0.12.3.1)++  * MathML reader: don't allow mfenced attributes to inherit (#177).+    When open and close attributes aren't given on an mfenced,+    we should use defaults rather than inheriting these from a+    parent mfenced.++texmath (0.12.3)++  * TeX reader: implement logic to convert a Bin symbol to+    an Op to Op when it occurs at the beginning of a group,+    or after an Open, Pun, or Op symbol. This will give much+    better results for unary `-` (#176).++  * OMML writer: fixed rendering of EDelimited (#173).+    We now properly render "middles" (separators).++texmath (0.12.2)++  * MathML input: support mmultiscripts element (#158, #100).++  * Make MathML tag/attr recognition case-insensitive (#158).++  * Pandoc writer: better handling of styling such as `\mathrm` (#145).+    Previously identifiers were always italic, no matter what+    styling was applied.++  * Ignore `\tag` in TeX input (#162).++  * TeX writer: avoid unneeded `\left` and `\right` for delimited.+    We don't need `\left` and `\right` when the contents are+    "standard height."++  * TeX reader: parse implicit EDelimited sections (#172).+    We now parse `(x)` as EDelimited, even though `\right` and `\left`+    are not used.++texmath (0.12.1.1)++  * Fix compilation with GHC-9.0.1 (#169, Simon Jakobi).+    Background:+    https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption+  * Add eqn to online demo.+  * Improve error messages for unknown control sequences, and restructure+    tex parser to be more efficient (#167).++texmath (0.12.1)++  * OMML writer: explicitly mark symbols as non-italic (#109).+    Otherwise, for some reason, they appear as italic by default.+  * Improve error messages in reading tex arrays.+  * Improve support for `\bmod`, `\mod`, etc. (#165).+    Allow them to take complex arguments like `\left( 1 \right)`.+  * Improve support for `\genfrac` (#164).+  * Ignore `\textstyle`, `\scriptstyle`, `\scriptscriptstyle`,+    as we currently ignore `\displaystyle`.+  * Parse siunitx commands in reading tex (#157).+  * Improve handling of `\not` in reading tex (#161).+    Previously we only handled `\not` in front of certain symbols.+  * Support `\pod` and `\pmod` and clean up spacing and font for+    `\mod` and `\bmod` (#160).++texmath (0.12.0.3)++  * Allow pandoc-types 1.22.++texmath (0.12.0.2)++  * Allow pandoc-types 1.21.+  * Pandoc output: omit empty Emph for sub/superscript without base (#155).+  * tex writer: Use `\overline{\overline{B}}` instead of unicode+    double line accent (#153).++texmath (0.12.0.1)++  * OMML writer: Fix overline and accent rendering (#152).+  * OMML reader: Fix dropped arrows (#153). Add tests.++texmath (0.12)++  * Use Text instead of String in data types and functions+    (Christian Despres) [API change].  Note that there are still a few+    places where we unpack Text to String with a view pattern:+    performance could likely be increased with further rewriting.+  * Avoid use of !! with negative index (jgm/pandoc#5853).++texmath (0.11.3)++  * Use error instead of fail to allow building with ghc 8.8.+  * Test output: remove superfluous spaces after control sequences,+    superfluous groups, and unicode VARIATION SELECTOR 1.+  * renderTeX: add space between control sequence and any non-ASCII+    character.  There are differences in behavior of isAlphaNum between+    different ghc versions that would affect test output otherwise.+  * charToLaTeXString: Ignore 65024 VARIATION SELECTOR 1 to avoid putting+    it literally in the output ; it is used in mathml output and occurs+    in many of the test cases.+  * Add cabal.project.+  * Use actions rather than travis for CI.++texmath (0.11.2.3)++  * OMML reader: properly distinguish normal text from math (#136).+    If `m:nor` or `m:lit` is set in `m:rPr`, we interpret the+    contents as literal text and not as math.+  * TeX reader: use different symbol (`_`) for `\underline` (#142).+    This gets the right accent properties on MathML output, so+    that the underline is not lower than it should be.+  * TeX reader: Treat `\bmod` as a relational symbol rather than+    an operator (#143).  This fixes spacing problems in several+    output formats.++texmath (0.11.2.2)++  * OMML writer: use m:nor for normal text (#135).++texmath (0.11.2.1)++  * OMML reader: Don't collapse `fName` to a string (#133).+    This fixes cases where fName has some complexity, e.g.+    a subscript or limit.++texmath (0.11.2)++  * Improved handling of \mathop etc (#126).  We now allow operators like+    `arg\,min`, converting the space into unicode.+  * Support \hspace (#126).+  * Support \hdots as synonym of \ldots (#126).+  * Support \mathds (#126).+  * In parsing array, ignore `|` in column specs (#127).+    We have no way to represent this in EArray, currently.+    Ignoring them seems better than failing altogether.++texmath (0.11.1.2)++  * Eqn writer: properly escape `{` and `}`.+  * Set more accurate bounds (Herbert Valerio Riedel).++texmath (0.11.1.1)++  * Fix building with ghc-8.6.1 by removing need for now missing+    MonadFail instances (Jonas Scholl).+  * TeX reader: Allow operators like `/` to be scaled (#120).+  * TeX reader: Improved efficiency of basicEnclosure.+  * TeX reader: Handle `\bmod` (#115).++texmath (0.11.1)++  * OMML writer: Use m:acc for accents in OMML (#119).  This fixes+    some spacing issues for e.g. the translation of `\dot{m}`.++texmath (0.11.0.1)++  * OMML writer: use zero-width space to avoid dashed box (#118).+    In Word, a dashed box shows up for empty text runs in+    exponents and bases, or empty exponents and bases.  So+    we use a zero-width space in these contexts.++texmath (0.11)++  * Changed treatment of non-ASCII characters.+    Previously we ensured that the output of conversion to tex+    was pure ASCII.  This meant rendering "ä" as "a", for+    example, and it meant that many characters (e.g. Chinese)+    simply got replaced with an empty string, while others+    got replaced with "[?]".++    This was not a particularly helpful behavior.  Including+    the unicode characters verbatim doesn't interfere with+    latex compilation.  They often won't show up in the generated+    math, but that is no worse than what happened before.++    This change passes through unicode characters unchanged+    when they can't be converted to standard LaTeX commands.++    An important reason for including the unicode characters+    is that pandoc uses TeX to represent math in its AST.+    So, for example, if you convert HTML with mathml to docx,+    you'll currently lose all Chinese characters, since they'll+    disappear in the TeX intermediary, even though a direct+    mathml to ooml conversion would have passed them through.+    With this change, these conversions will work better+    (see jgm/pandoc#4642).++    + Removed Text.TeXMath.Unicode.ToASCII (API change).+    + Removed cbits that were needed for that module.+    + Modified Tex.TeXMath.Unicode.ToTeX to pass through+      unicode characters that can't be converted, rather+      than trying to asciify them or remove them.++  * Render degree symbol in tex as `{^\circ}`.++texmath (0.10.1.2)++  * eqn writer:  use uppercase letters in unicode escapes (jgm/pandoc#4597).++texmath (0.10.1.1)++  * Handle multicharacter operators better in Eqn, TeX, OMML (#109).++  * OMML reader: unwrap `<w:...>` tags immediately under `<m:oMath>`+    (#111, Jesse Rosenthal).++texmath (0.10.1)++  * Expose Text.TeXMath.TeX (TeX rendering functions) (#108).+    This is needed in order to use getTeXMath from Text.TeXMath.Unicode.ToTeX.+  * Pandoc writer: don't insert punctuation space before explicit space+    (#107).  E.g. in `2,\!4`.+  * Fix end-line command ('\\') in AMSmath environments (ARATA Mizuki).+    The end-line command in AMSmath environments does not allow spaces+    before its optional argument.+  * Use `\in` for SMALL ELEMENT OF in "base" (Vaclav Haisman).++texmath (0.10)++  * Use `\ni` in base for U+220D (#103).+  * Improved unicode -> tex symbol lookup.  Previously we had many+    cases where the lookup table would map a unicode character to+    the empty string for the base package, and this would print finding+    a good match in another package in the environment.+  * Added support for `\symbf` (#101).+  * Revert "migrating the lookup structures for Unicode/ToTex.hs to+    use C source files to accelerate builds."  This change gave us somewhat+    faster builds (using less memory), but at a huge cost of+    maintainability.+  * Removed AlignDefault from Alignment (API change, #102).+    AlignDefault doesn't make sense for a converter between+    formats that may have different defaults.  We now properly treat+    centering as the default in MathML and OMML input.++texmath (0.9.4.4)++  * Update tests that should have been updated for 0.9.4.3.++texmath (0.9.4.3)++  * MathML writer: put linethickness attribute directly on mfrac+    element. This fixes binomial rendering.++texmath (0.9.4.2)++  * Pandoc writer: better handle accented characters (jgm/pandoc#3922).++texmath (0.9.4.1)++  * Improved handling of accents and upper/lower delimiters (#98).+  * cgi: use cloudflare cdn for mathjax.++texmath (0.9.4)++  * Added writer for GNU eqn format (used with *roff).++    + New module Text.TeXMath.Writers.Eqn, exporting writeEqn.+    + Moved handleDownup to Shared.+    + Add eqn output option in texmath executable.+    + Add eqn writer tests.++texmath (0.9.3)++  * Expose pMacroDefinition in Text.TeXMath.Readers.TeX.Macros,+    with generalized type.++texmath (0.9.2)++  * Support `\newenvironment` and `\renewenvironment`.++texmath (0.9.1.1)++  * Added program to generate cbits/{key,val}ToASCII.c from a data file.+  * Migrate lookup structures for Unicode/ToTex.hs to use C+    source files to accelerate builds (Carter Tazio Schonwald).+  * Allow \boldsymbol + a token without braces.+    And same for other styling commands. Closes #94.+  * Better ghc-prof-options.++texmath (0.9.1)++  * Pandoc writer:  add thin space after math operators.+  * TeX reader: improve parsing of `\mathop` to allow+    multi-character operator names.+  * Minor optimizations.+  * Added Ord instances to Exp and associated types.++texmath (0.9)++  * OMML writer: Properly handle nary inside delimiters (#92).+    Previously under-overs inside delimiters didn't get+    converted to nary the way they did outside of delimiters.+  * TeX reader: Support bm, mathbold, pmd.+  * OMML reader: Handle w:sym (#65).+  * New module, Text.TeXMath.Unicode.Fonts, for MS font code point+    lookup.  Copied from pandoc Text.Pandoc.Readers.Docx.Fonts,+    which will be changed to import this.  [API change]+  * Fixed typo in test program for round-trip tests.+  * Parse math inside text constructions (#62).  E.g.+    `\text{if $y$ is greater than $0$}` Text and math can nest indefinitely.+  * Modify test suite so tests can be marked as "ought to raise error."+    So far this is only used in mml.  If the test is called foo+    and `readers/mml/foo.error` exists, then the test is expected+    to raise a parse error.+  * MathML reader err: Don't print colon after line number.+  * Restore proper error handling to MathML reader.  Note that the tests+    need to be redone, since they assumed the old behavior of just+    returning empty elements on parse errors.++texmath (0.8.6.7)++  * TeX reader: treat backslash + newline as like backslash + space.+    Previously this case gave an error.  See jgm/pandoc#3189.++texmath (0.8.6.6)++  * Allow pandoc-types 1.17.*.++texmath (0.8.6.5)++  * Fixed transposition of sub/super on operators (jgm/pandoc#3040).++texmath (0.8.6.4)++  * Support 'equation' environment, without the numbering of course.++texmath (0.8.6.3)++  * Use POST instead of GET for texmath-cgi.++texmath (0.8.6.2)++  * Fixed array alignment issues (jgm/pandoc#2864, jgm/pandoc#2310).+  * Use 1 and 0 for _Hide attributes, rather than on and off.+    Officially it seems that either 1/0 or true/false are wanted.+  * Fixed EUnderOver for omml output.  Previously both the under and+    the over part were being placed under (jgm/pandoc#2775).++texmath (0.8.6.1)++  * OMML writer:  Fixed rendering of roots, so that the degree appears+    in the right place.+  * OMML writer:  Don't include empty rPr elements.++texmath (0.8.6)++  * TeX reader: Support hundreds more math symbols (all of those defined in+    Text.TeXMath.Unicode.ToTeX), including `\nwarrow`, `\swarrow`,+    `\nearrow`, `\searrow` (#90).++texmath (0.8.5.1)++  * OMML writer: Fixed order of elements in nary formulas to conform+    to OMML spec (#88, Niko Weh).  `<e>` must follow the `<sup>` and `<sub>`+    parts of `<nary>`. This fixes rendering issues in LibreOffice+    (though Word copes with the incorrect order).+  * Added Paths_texmath to Other-Modules for texmath executable.++texmath (0.8.5)++  * TeX parser: Support limited styling inside \DeclareMathOperator (#85).+  * TeX reader: Correctly parse \mbox.  Its argument is text mode.+  * Updated mathml tests to use mo for operators.+  * TeX reader: support mathopen, mathclose, mathpunct.+  * MathML writer: render EMathOperator as mo, not mi (#86).+  * MathML: handle leading space in EText (#87).+  * Take --version in executable from cabal metadata.+  * Added Paths_texmath to other-modules.++texmath (0.8.4.2)++  * Fixed overbrace, underbrace (#82).  Previously we were using the wrong+    character: U+FE37 instead of U+23DE.  This didn't work in Word.+  * Support \mathop, \mathrel, \mathbin, \mathord+  * MathML - render Symbol Ord as mi, not mo (#83).+  * Handle align environments with > 2 cells per row (#84).++texmath (0.8.4.1)++  * Added stack install instructions.+  * Fixed bold-italic in OMML (#76).  Previously `\mathbfit` didn't work+    properly in OMML output.+  * Ignore `\nonumber` (#79).+  * Allow styling in `\operatorname` e.g. `\operatorname{\mathcal{L}}` (#80).+  * Fixed bug in `supHide` and `subHide` for OMML.  This  led to little+    empty boxes being displayed in integrals with subscripts but no+    superscripts.  See jgm/pandoc#2571.+  * Implemented `\mod` as a math operator (#81).  This doesn't capture all the+    spacing subtleties of the amsmath version, but should be good enough+    for most purposes.+  * Allow pandoc-types < 1.17.++texmath (0.8.4)++  * Improved symbol spacing in Pandoc output (jgm/pandoc#2261).+    This change avoids putting space around binary symbols that+    come at the beginning or end of a group, or appear on their+    own.  It also avoids spacing on a binary symbol that follows+    a Bin, Op, Rel, Open, or Punct atom, in accord with+    TeXBook Appendix G.  We could go farther towards exactly+    matching the TeXBook rules, but this simple change goes some of+    the way.+  * Added stack.yaml.++texmath (0.8.3)++  * Parse uppercase Greek letters as EIdentifier, not ESymbol Op.+    This fixes handling of things like `$Lambda^1$`, particularly in omml.++texmath (0.8.2.2)++  * Handle `.` after number with no following digits.++texmath (0.8.2.1)++  * Handle bare hyphen in `\text{...}`.  Closes jgm/pandoc#2274.+  * Support `\ltimes` and `\rtimes` in the TeX reader (Arata Mizuki).+  * Slightly more efficient number parser.++texmath (0.8.2)++  * Better handling of decimal points. Decimal points are now parsed+    as parts of numbers, not as separate symbols.  E.g. in MathML they+    now appear in `<mn>` elements.  Closes #74.++texmath (0.8.1)++  * OMML: Don't force everything into Roman font by default.+    This change ensures that variables will be italic by+    default in Word.  See jgm/pandoc#2075.++texmath (0.8.0.2)++  * Fixed typo in `defaultEnv` to include `amssymb` (#68).+  * Moved some lookup tables to C, and disabled aggressive+    profiling defaults, to avoid excessive memory usage in+    compiling with clang (#70).+  * Support `\newcommand*` in `parseMacroDefinition` (jgm/pandoc#2005).+  * Fixed order bug for over/under in OMML reader (#66).+  * Support `\boldsymbol` (#67).++texmath (0.8.0.1)++  * Added network-uri flag. This addresses the split of network+    and network-uri packages.+  * OMML reader: change default accent (Jesse Rosenthal).+    The default had previously been set as accute (possibly as a+    placeholder). It appears to be circumflex/hat instead.++texmath (0.8)++  * Added OMML reader (Jesse Rosenthal).+  * Support latex \substack (#57).+  * Added EBoxed and implemented in readers and writers (#58).+  * Handle latex \genfrac.  Use \genfrac for \brace, \brack,+    etc. when amsmath is available.+  * Improvements in handling of space characters.+  * Use ESpace rather than EText when a mathml mtext just contains+    a space.+  * Use \mspace when needed to get latex spaces with odd sizes, rather+    than finding the closest simple command.+  * Use Rational instead of Double in ESpaced, EScaled.+  * Shared: Export getSpaceWidth, getSpaceChars.+  * Shared: Export fixTree, isEmpty, empty (formerly in MathML reader).++texmath (0.7.0.2)++  * TeX reader:  further improvements in error reporting.+    Instead of reporting line and column, a snippet is printed+    with a caret indicating the position of the error.  Also+    fixed bad position information when control sequences are+    followed by a letter.++texmath (0.7.0.1)++  * TeX reader:++    + Improved error reporting.+    + Optimized parser.+    + Treat `\ ` as ESpaced rather than ESymbol.+    + Internal improvements, including using the parsec3 interface+      instead of the older parsec2 compatibility interface.++  * Added tests for phantom.++texmath (0.7)++  * Changes in Exp type:++    + Removed EUp, EDown, EDownup, EUnary, EBinary.+    + Added EFraction (and FractionType), ESqrt, Eroot, EPhantom.+    + Added boolean "convertible" parameter to EUnder, EOver, EUnderover.+    + Changed parameter of EScaled from String to Double.+    + Changed parameter of ESpace from String to Double.+    + Removed EStretchy.+    + Added EStyled, corresponding to mstyle in mathml, and \mathrm,+      \mathcal, etc. in TeX (which can contain arbitrary math content,+      not just text).+    + Changed the type of EDelimited.  The contents of an EDelimited are+      now either Right Exp or Left String (the latter case represents a+      fence in middle position, e.g. \mid| in LaTeX).++  * Module reorganisation:  the exposed interface has been completely+    changed, and modules for reading MathML and writing TeX math+    have been added:++    + All writers now reside in Text.TeXMath.Writers.+        - Text.TeXMath.MathML -> Text.TeXMath.Writers.MathML.+          toMathML and showExp are removed, writeMathML added.+        - Text.TeXMath.OMML -> Text.TeXMath.Writers.OMML.+          toOMML and showExp removed, writeOMML added.+        - Text.TeXMath.Pandoc -> Text.TeXMath.Writers.Pandoc.+          toPandoc removed, writePandoc added.+        - New module Text.TeXMath.Writers.TeX, exporting writeTeX,+          writeTeXWith, addLaTeXEnvironment (the latter giving control+          over which packages are assumed to be available).++    + All readers now reside in Text.TeXMath.Readers.+        - Text.TeXMath.MathMLParser -> Text.TeXMath.Readers.MathML,+	  exporting readMathML.+        - Text.TeXMath.Readers.TeX nows exports readTeX rather than+          parseFormula.++    + New modules for unicode conversion: Text.TeXMath.Unicode.ToASCII,+      Text.TeXMath.Unicode.ToTeX, Text.TeXMath.Unicode.ToUnicode.++    + Two MathML specific modules: Text.TeXMath.Readers.MathML.EntityMap,+      Text.TeXMath.Readers.MathML.MMLDict.++    + In Text.TeXMath, all the XtoY functions have been removed+      in favour of rexporting raw reader and writer functions. The+      data type Exp is now also exported.++  * Bug fixes and improvements.++    + TeX writer: Properly handle accents inside \text{}.+      Use real text environments for EText (\textrm, not \mathrm).+      Improved handling of scalers (\Big etc.).  Use amsmath matrix+      environments when appropriate.  Fixed \varepsilon.+    + MathML writer:  Omit superfluous outer mrows.  Add position+      information to fences.+    + OMML writer:  Handle \phantom.+    + Pandoc writer:  Use unicode characters to support Fraktur and+      other text styles.+    + TeX reader:  Use EUnder/Over for \stackrel, \overset, \underset.+      Improved handling of primes.  Fixed \notin.  Avoid superfluous+      grouping of single elements.  Improved handling of scalers (\Big etc.).+      Handle \choose, \brace, \brack, \bangle (#21).+    + Macros:  Don't raise an error if applying a macro fails to+      resolve to a fixed point; instead, just return the original string.++  * Rewrote test suite as a proper cabal test suite.  Added+    --regenerate-tests and --round-trip options.++  * Updated texmath online demo for bidirectional conversion.++  * Removed cgi and test flags.  Added executable flag to build texmath.++  * Modified texmath so it works like a cgi script when run as+    texmath-cgi (through symlink or renaming).  Removed dependency on+    the cgi package.++texmath (0.6.7)++  * New Module: Text.TeXMath.Unidecode, a module for approximating+    unicode characters in ASCII.+  * New Module: Text.TeXMath.Shared, a module for shared lookup+    tables between the various readers and writers+  * New Module: Text.TeXMath.MathMLParser, exporting readMathML.+  * New Module: Text.TeXMath.EntityMap, exporting getUnicode,+    a conversion table from MathML entities to unicode characters.+  * New Module: Text.TeXMath.UnicodeToLaTeX, exporting getLaTeX,+    converting a string of unicode characters to a string of equivalent LaTeX+    commands.+  * New Module: Text.TeXMath.LaTeX, replacing Text.TeXMath.Parser,+    exporting toTeXMath.+  * New Module: Text.TeXMath.MMLDict, implements a lookup table from+    operators to their default values as defined by the MML dictionary,+    exporting getOperator.+  * New Module: Text.TeXMath.Compat, maintaining compatibility with+    mtl < 2.2.1.+  * Modified Text.TeXMath to export the primitive readers, as well as+    mathMLTo{Writer} for all writers+  * Modified: Text.TeXMath.Types: added additional record types for+    Text.TeXMath.MMLDict and Text.TeXMath.UnicodeToLaTeX.+    New Exports: Operator(..), Record(..).+  * Modified test suite:  use cabal test, added significant number of tests.+  * Added recognition of the LaTeX command \phantom++texmath (0.6.6.3)++  * Use combining tilde accent for \tilde.  Closes pandoc #1324.++texmath (0.6.6.2)++  * Allow \left to be used with ), ], etc.  Ditto with \right.+    Previously only (, [, etc. were allowed with \left.  Closes pandoc #1319.++texmath (0.6.6.1)++  * Support \multline (previously it was mispelled "multiline")+  * Changed data-files to extra-source-files.++texmath (0.6.6)++  * Insert braces around macro expansions to prevent breakage (#7).+  * Support \operatorname and \DeclareMathOperator (rekka) (#17).+  * Support \providecommand (#15).+  * Fixed spacing bugs in pandoc rendering (#24).+  * Ignore \hline at end of array row instead of failing (#19).+
src/Text/TeXMath/Readers/MathML.hs view
@@ -471,22 +471,38 @@ multiscripts :: Element -> MML Exp multiscripts e = do   let (xs, pres) = break ((== "mprescripts") . name) (elChildren e)-  let row'' e' = if name e' == "none"-                    then return $ EGrouped []-                    else row e'+  let row'' e' = case name e' of+                   "none" -> return $ EGrouped []+                   "mrow" -> row e'+                   _ -> mkExp <$> expr e'+  let maybeGroup [w] = w+      maybeGroup ws = EGrouped ws   xs' <- mapM row'' xs-  let base =-        case xs' of-          [x]       -> x-          [x,y]     -> ESub x y-          (x:y:z:_) -> ESubsup x y z-          []        -> EGrouped []+  let getSubs [] = []+      getSubs [w] = [w]+      getSubs (w:_:ws) = w : getSubs ws+  let getSups [] = []+      getSups [_] = []+      getSups (_:w:ws) = w : getSups ws+  let (base, postSubs, postSups) =+         case xs' of+           [] -> (EGrouped [], [], [])+           (w:ws) -> (w, getSubs ws, getSups ws)+  let rightSide =+        case (postSubs, postSups) of+          ([],[])   -> base+          (ws,[])   -> ESub base (maybeGroup ws)+          ([],ws)   -> ESuper base (maybeGroup ws)+          (ws,ys)   -> ESubsup base (maybeGroup ws) (maybeGroup ys)   pres' <- mapM row'' $ drop 1 pres-  return $-    case pres' of-        (x:y:_) -> EGrouped [ESubsup (EGrouped []) x y, base]-        [x]     -> EGrouped [ESub x (EGrouped []), base]-        []      -> base+  let (preSubs, preSups) = (getSubs pres', getSups pres')+  let leftSide =+        case (preSubs, preSups) of+          ([],[])   -> EGrouped []+          (ws,[])   -> ESub (EGrouped []) (maybeGroup ws)+          ([],ws)   -> ESuper (EGrouped []) (maybeGroup ws)+          (ws,ys)   -> ESubsup (EGrouped []) (maybeGroup ws) (maybeGroup ys)+  return $ EGrouped [leftSide, rightSide]   -- Table
src/Text/TeXMath/Readers/OMML.hs view
@@ -63,7 +63,7 @@                    [x] -> x                    xs -> EGrouped xs) expList elemToOMML element  | isElem "m" "oMath" element =-  Just $ concat $ mapMaybe elemToExps $ unwrapWTags $ elChildren element+  Just $ elemsToExps $ unwrapWTags $ elChildren element elemToOMML _ = Nothing  -- oMath can contain w:hyperlink, w:sdt, etc. I can't find a complete@@ -117,20 +117,7 @@                     | OBoldItalic                     deriving (Show, Eq) -elemToBase :: Element -> Maybe Exp-elemToBase element | isElem "m" "e" element = do-  bs <- elemToBases element-  return $ case bs of-    (e : []) -> e-    exps     -> EGrouped exps-elemToBase _ = Nothing -elemToBases :: Element -> Maybe [Exp]-elemToBases element | isElem "m" "e" element =-  return $ concat $ mapMaybe elemToExps' (elChildren element)-elemToBases _ = Nothing-- breakOnAmpersand :: [Exp] -> [[Exp]] breakOnAmpersand = splitWhen isAmpersand  where@@ -234,9 +221,36 @@     Just $ TextBoldItalic   | otherwise = Nothing +-- merge adjacent Exps with same style; see jgm/pandoc#10560:+mergeExps :: [Exp] -> [Exp]+mergeExps [] = []+mergeExps (EStyled tt xs : EStyled tt' xs' : rest)+  | tt == tt' = mergeExps (EStyled tt (xs <> xs') : rest)+mergeExps (EText tt x : EText tt' x' : rest)+  | tt == tt' = mergeExps (EText tt (x <> x') : rest)+mergeExps (x:xs) = x : mergeExps xs++elemsToExps :: [Element] -> [Exp]+elemsToExps = mergeExps . concat . mapMaybe elemToExps+ elemToExps :: Element -> Maybe [Exp] elemToExps element = unGroup <$> elemToExps' element +elemToBase :: Element -> Maybe Exp+elemToBase element | isElem "m" "e" element = do+  bs <- elemToBases element+  return $ case bs of+    (e : []) -> e+    exps     -> EGrouped exps+elemToBase _ = Nothing++elemToBases :: Element -> Maybe [Exp]+elemToBases element | isElem "m" "e" element =+  return $ concat $ mapMaybe elemToExps' (elChildren element)+elemToBases _ = Nothing+++ elemToExps' :: Element -> Maybe [Exp] elemToExps' element | isElem "m" "acc" element = do   let chr = filterChildName (hasElemName "m" "accPr") element >>=@@ -301,8 +315,8 @@   let barType = filterChildName (hasElemName "m" "fPr") element >>=             filterChildName (hasElemName "m" "type") >>=             findAttrBy (hasElemName "m" "val")-  let numExp = EGrouped $ concat $ mapMaybe (elemToExps) (elChildren num)-      denExp = EGrouped $ concat $ mapMaybe (elemToExps) (elChildren den)+  let numExp = EGrouped $ elemsToExps (elChildren num)+      denExp = EGrouped $ elemsToExps (elChildren den)   case barType of     Just "noBar" -> Just [EFraction NoLineFrac numExp denExp]     _            -> Just [EFraction NormalFrac numExp denExp]@@ -310,7 +324,7 @@   fName <- filterChildName (hasElemName "m" "fName") element   baseExp <- filterChildName (hasElemName "m" "e") element >>=           elemToBase-  let fnameExp = case mconcat $ mapMaybe (elemToExps') (elChildren fName) of+  let fnameExp = case mconcat $ mapMaybe elemToExps' (elChildren fName) of                    [x] -> x                    xs  -> EGrouped xs   return [fnameExp, baseExp]@@ -350,14 +364,14 @@   baseExp <- filterChildName (hasElemName "m" "e") element           >>= elemToBase   limExp <- filterChildName (hasElemName "m" "lim") element-            >>= (\e -> Just $ concat $ mapMaybe (elemToExps) (elChildren e))+            >>= (\e -> Just $ elemsToExps (elChildren e))             >>= (return . EGrouped)   return [EUnder True baseExp limExp] elemToExps' element | isElem "m" "limUpp" element = do   baseExp <- filterChildName (hasElemName "m" "e") element           >>= elemToBase   limExp <- filterChildName (hasElemName "m" "lim") element-            >>= (\e -> Just $ concat $ mapMaybe (elemToExps) (elChildren e))+            >>= (\e -> Just $ elemsToExps (elChildren e))             >>= (return . EGrouped)   return [EOver True baseExp limExp] elemToExps' element | isElem "m" "m" element =@@ -381,9 +395,9 @@                filterChildName (hasElemName "m" "limLoc") >>=                findAttrBy (hasElemName "m" "val")   subExps <- filterChildName (hasElemName "m" "sub") element >>=-         (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+         return . elemsToExps . elChildren   supExps <- filterChildName (hasElemName "m" "sup") element >>=-         (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+         return . elemsToExps . elChildren   let baseExp = maybeToList $         filterChildName (hasElemName "m" "e") element >>= elemToBase   case limLoc of@@ -404,7 +418,7 @@   return [EPhantom baseExp] elemToExps' element | isElem "m" "rad" element = do   degExps <- filterChildName (hasElemName "m" "deg") element >>=-              (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+              return . elemsToExps . elChildren   baseExp <- filterChildName (hasElemName "m" "e") element >>=              elemToBase   return $ case degExps of@@ -412,9 +426,9 @@     ds -> [ERoot (EGrouped ds) baseExp] elemToExps' element | isElem "m" "sPre" element = do   subExps <- filterChildName (hasElemName "m" "sub") element >>=-            (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+            return . elemsToExps . elChildren   supExps <- filterChildName (hasElemName "m" "sup") element >>=-            (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+            return . elemsToExps . elChildren   baseExp <- filterChildName (hasElemName "m" "e") element >>=              elemToBase   return [ESubsup@@ -426,21 +440,21 @@   baseExp <- filterChildName (hasElemName "m" "e") element >>=              elemToBase   subExps <- filterChildName (hasElemName "m" "sub") element >>=-            (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+            return . elemsToExps . elChildren   return [ESub baseExp (EGrouped subExps)] elemToExps' element | isElem "m" "sSubSup" element = do   baseExp <- filterChildName (hasElemName "m" "e") element >>=              elemToBase   subExps <- filterChildName (hasElemName "m" "sub") element >>=-             (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+             return . elemsToExps . elChildren   supExps <- filterChildName (hasElemName "m" "sup") element >>=-             (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+             return . elemsToExps . elChildren   return [ESubsup baseExp (EGrouped subExps) (EGrouped supExps)] elemToExps' element | isElem "m" "sSup" element = do   baseExp <- filterChildName (hasElemName "m" "e") element >>=              elemToBase   supExps <- filterChildName (hasElemName "m" "sup") element >>=-            (\e -> return $ concat $ mapMaybe (elemToExps) (elChildren e))+            return . elemsToExps . elChildren   return [ESuper baseExp (EGrouped supExps)] elemToExps' element | isElem "m" "r" element = do   let mrPr = filterChildName (hasElemName "m" "rPr") element
src/Text/TeXMath/Readers/TeX.hs view
@@ -52,7 +52,27 @@ -- The parser  expr1 :: TP Exp-expr1 = choice+expr1 = do+  e <- expr2+  -- check for primes and add them as a subscript+  -- in TeX ' is shorthand for ^{\prime}+  primes <- many (char '\'')+  let getPrimes cs = case cs of+                       "" -> ""+                       "'" -> "\x2032"+                       "''" -> "\x2033"+                       "'''" -> "\x2034"+                       "''''" -> "\x2057"+                       _ -> "\x2057" ++ getPrimes (drop 4 cs)+  ignorable+  case getPrimes primes of+    "" -> return e+    cs -> return $ case e of+                     ESub b sub -> ESubsup b sub (ESymbol Pun (T.pack cs))+                     _ -> ESuper e (ESymbol Pun (T.pack cs))++expr2 :: TP Exp+expr2 = choice           [ inbraces           , variable           , number@@ -62,7 +82,7 @@           , enclosure           , hyperref           , command-          ] <* ignorable+          ]  -- | Parse a formula, returning a list of 'Exp'. readTeX :: Text -> Either Text [Exp]@@ -233,7 +253,7 @@     ctrlseq "operatorname"     -- these are slightly different but we won't worry about that here...     convertible <- (char '*' >> spaces >> return True) <|> return False-    tok' <- texToken+    tok' <- texSymbol <|> braces (manyExp expr2) <|> texChar     tok'' <- (EMathOperator <$> (expToOperatorName tok'))            <|> return (EStyled TextNormal [tok'])     return (tok'', convertible)@@ -408,11 +428,7 @@  delimitedImplicit :: TP Exp delimitedImplicit = try $ do-  (opent, closer) <--           (("(", symbol ")") <$ symbol "(")-       <|> (("[", symbol "]") <$ symbol "[")-       <|> (("|", symbol "|") <$ symbol "|")-       <|> (("\x2016", "\x2016" <$ ctrlseq "rVert") <$ ctrlseq "lVert")+  (opent, closer) <- (("\x2016", "\x2016" <$ ctrlseq "rVert") <$ ctrlseq "lVert")   contents <- concat <$>               many (try $ ((:[]) . Left  <$> middle)                       <|> (map Right . unGrouped <$>@@ -862,6 +878,7 @@          (\t -> EUnder False t acc) <$> texToken        Just acc@(ESymbol TOver _) ->          (\t -> EOver False t acc) <$> texToken+       Just (ESymbol Alpha t) -> return $ EIdentifier t -- see #256        Just x  -> return x        Nothing          | sym == "\\mod" -> do
src/Text/TeXMath/Shared.hs view
@@ -33,6 +33,9 @@   , isEmpty   , empty   , handleDownup+  , isUppercaseGreek+  , toPrimes+  , isRLSequence   ) where  @@ -354,3 +357,27 @@ handleDownup DisplayBlock  (EOver True x y)        = EOver False  x y handleDownup DisplayBlock  (EUnderover True x y z) = EUnderover False x y z handleDownup _             x                       = x++isUppercaseGreek :: T.Text -> Bool+isUppercaseGreek t = not (T.null t) && T.all isUGreek t+ where+  isUGreek c = c >= '\x0391' && c <= '\x03A9'++toPrimes :: Exp -> Maybe T.Text+toPrimes (ESymbol ty s) | ty == Pun || ty == Ord = go s+ where+  go t =+    case T.uncons t of+      Nothing -> Just ""+      Just ('\'', t') -> ("'" <>) <$> go t'+      Just ('\x2032', t') -> ("'" <>) <$> go t'+      Just ('\x2033', t') -> ("''" <>) <$> go t'+      Just ('\x2034', t') -> ("'''" <>) <$> go t'+      Just ('\x2057', t') -> ("''''" <>) <$> go t'+      _ -> Nothing+toPrimes _ = Nothing++isRLSequence :: [Alignment] -> Bool+isRLSequence [AlignRight, AlignLeft] = True+isRLSequence (AlignRight : AlignLeft : as) = isRLSequence as+isRLSequence _ = False
src/Text/TeXMath/Unicode/ToUnicode.hs view
@@ -186,6 +186,7 @@                , ((TextItalic,'e'),'\119890')  -- e -> 𝑒                , ((TextItalic,'f'),'\119891')  -- f -> 𝑓                , ((TextItalic,'g'),'\119892')  -- g -> 𝑔+               , ((TextItalic,'h'),'\8462')  -- h -> ℎ (Planck constant)                , ((TextItalic,'i'),'\119894')  -- i -> 𝑖                , ((TextItalic,'j'),'\119895')  -- j -> 𝑗                , ((TextItalic,'k'),'\119896')  -- k -> 𝑘
src/Text/TeXMath/Writers/Eqn.hs view
@@ -20,6 +20,7 @@  module Text.TeXMath.Writers.Eqn (writeEqn) where +import Text.TeXMath.Shared (toPrimes) import Data.List (transpose) import Data.Char (isAscii, ord) import qualified Data.Text as T@@ -163,9 +164,15 @@                 then " / "                 else " over " writeExp (ESub b e1) = writeExp' b <> " sub " <> writeExp' e1-writeExp (ESuper b e1) = writeExp' b <> " sup " <> writeExp' e1+writeExp (ESuper b e1) = writeExp' b <>+  case toPrimes e1 of+    Just ps -> ps+    _ -> " sup " <> writeExp' e1 writeExp (ESubsup b e1 e2) =-  writeExp' b <> " sub " <> writeExp' e1 <> " sup " <> writeExp' e2+  writeExp' b <> " sub " <> writeExp' e1 <>+  case toPrimes e2 of+    Just ps -> ps+    _ -> " sup " <> writeExp' e2 writeExp (EOver _convertible b e1) =   writeExp' b <> " to " <> writeExp' e1 writeExp (EUnder _convertible b e1) =
src/Text/TeXMath/Writers/MathML.hs view
@@ -28,7 +28,8 @@ import Text.TeXMath.Types import Text.TeXMath.Unicode.ToUnicode import Data.Generics (everywhere, mkT)-import Text.TeXMath.Shared (getMMLType, handleDownup)+import Text.TeXMath.Shared (getMMLType, handleDownup,+                            isUppercaseGreek, isRLSequence) import Text.TeXMath.Readers.MathML.MMLDict (getMathMLOperator) import qualified Data.Text as T import Text.Printf@@ -54,8 +55,10 @@   case ft of        NormalFrac   -> unode "mfrac" [x', y']        InlineFrac   -> withAttribute "displaystyle" "false" .+                         unode "mstyle" .                          unode "mfrac" $ [x', y']        DisplayFrac  -> withAttribute "displaystyle" "true" .+                         unode "mstyle" .                          unode "mfrac" $ [x', y']        NoLineFrac   -> withAttribute "linethickness" "0" .                          unode "mfrac" $ [x', y']@@ -110,18 +113,24 @@ makeArray :: Maybe TextType -> [Alignment] -> [ArrayLine] -> Element makeArray tt as ls = unode "mtable" $   map (unode "mtr" .-    zipWith (\a -> setAlignment a .  unode "mtd". map (showExp tt)) as') ls+    zipWith (\a -> setAlignment a .  unode "mtd". showExps tt) as') ls    -- see #205 on the need for style attributes:    where setAlignment AlignLeft    =            withAttribute "columnalign" "left" .-           withAttribute "style" "text-align: left"+           withAttribute "style"+             (if isRLSequence as+                 then "text-align: left; padding-left: 0"+                 else "text-align: left")          setAlignment AlignRight   =            withAttribute "columnalign" "right" .-           withAttribute "style" "text-align: right"+           withAttribute "style"+             (if isRLSequence as+                 then "text-align: right; padding-right: 0"+                 else "text-align: right")          setAlignment AlignCenter  =            withAttribute "columnalign" "center" .            withAttribute "style" "text-align: center"-         as'                       = as ++ cycle [AlignCenter]+         as'                       = as ++ repeat AlignCenter  -- Kept as String for Text.XML.Light withAttribute :: String -> T.Text -> Element -> Element@@ -146,6 +155,17 @@       in  withAttribute "accent" isaccent $ tunode "mo" x     _                -> showExp tt e +showExps :: Maybe TextType -> [Exp] -> [Element]+showExps tt = map (showExp tt) . insertFunctionApps++insertFunctionApps :: [Exp] -> [Exp]+insertFunctionApps [] = []+insertFunctionApps (e@EMathOperator{} : ESymbol _ "\x2061" : es) =+  e : ESymbol Pun "\x2061" : insertFunctionApps es+insertFunctionApps (e@EMathOperator{} : es) =+  e : ESymbol Pun "\x2061" : insertFunctionApps es+insertFunctionApps (e:es) = e : insertFunctionApps es+ showExp :: Maybe TextType -> Exp -> Element showExp tt e =  let toUnicodeMaybe :: TextType -> T.Text -> Maybe T.Text@@ -156,7 +176,10 @@      vnode :: String -> T.Text -> Element      vnode elname t        = case tt of-           Nothing -> tunode elname t+           Nothing ->+             if isUppercaseGreek t -- see #255+                then withAttribute "mathvariant" "normal" $ tunode elname t+                else tunode elname t            Just TextNormal -> withAttribute "mathvariant" "normal" $                                 tunode elname t            Just textStyle ->@@ -168,30 +191,32 @@   in case e of    ENumber x        -> vnode "mn" x    EGrouped [x]     -> showExp tt x-   EGrouped xs      -> mrow $ map (showExp tt) xs+   EGrouped xs      -> mrow $ showExps tt xs    EDelimited start end xs -> mrow $      [ makeStretchy FPrefix (vnode "mo" start) | not (T.null start) ] ++      map (either (makeStretchy FInfix . vnode "mo") (showExp tt)) xs ++      [ makeStretchy FPostfix (vnode "mo" end)         | not (T.null end) ]    EIdentifier x    -> vnode "mi" x-   EMathOperator x  -> vnode "mo" x+   EMathOperator x  -> vnode "mi" x -- see #257    ESymbol Open x   -> makeFence FPrefix $ vnode "mo" x    ESymbol Close x  -> makeFence FPostfix $ vnode "mo" x-   ESymbol Ord x    -> vnode "mi" x+   ESymbol Ord x+     | x == "\x2061" -> vnode "mo" x+     | otherwise    -> vnode "mi" x    ESymbol _ x      -> vnode "mo" x    ESpace x         -> spaceWidth x    EFraction ft x y -> showFraction tt ft x y-   ESub x y         -> unode "msub" $ map (showExp tt) [x, y]-   ESuper x y       -> unode "msup" $ map (showExp tt) [x, y]-   ESubsup x y z    -> unode "msubsup" $ map (showExp tt) [x, y, z]-   EUnder _ x y     -> unode "munder" [showExp tt x, showExp' tt y]+   ESub x y         -> unode "msub" $ showExps tt [x, y]+   ESuper x y       -> unode "msup" $ showExps tt [x, y]+   ESubsup x y z    -> unode "msubsup" $ showExps tt [x, y, z]+   EUnder _ x y     -> unode "munder" $ showExps tt [x] ++ [showExp' tt y]    EOver _ x (ESymbol Accent "\8407") -- see #218, gives better rendering for vectors-                    -> unode "mover" [showExp tt x, showExp' tt (ESymbol Accent "\8594")]-   EOver _ x y      -> unode "mover" [showExp tt x, showExp' tt y]-   EUnderover _ x y z -> unode "munderover"-                          [showExp tt x, showExp' tt y, showExp' tt z]-   EPhantom x       -> unode "mphantom" $ showExp tt x+                    -> unode "mover" $ showExps tt [x] ++ [showExp' tt (ESymbol Accent "\8594")]+   EOver _ x y      -> unode "mover" $ showExps tt [x] ++ [showExp' tt y]+   EUnderover _ x y z -> unode "munderover" $+                          showExps tt [x] ++ [showExp' tt y, showExp' tt z]+   EPhantom x       -> unode "mphantom" $ showExps tt [x]    EBoxed x         -> withAttribute "notation" "box" .                        unode "menclose" $ showExp tt x    ESqrt x          -> unode "msqrt" $ showExp tt x
src/Text/TeXMath/Writers/OMML.hs view
@@ -26,11 +26,13 @@  import Text.XML.Light import Text.TeXMath.Types+import Text.TeXMath.Shared (isUppercaseGreek, isRLSequence) import Data.Generics (everywhere, mkT) import Data.Char (isSymbol, isPunctuation) import Data.Either (lefts, isLeft, rights) import qualified Data.Text as T import Data.List.Split  (splitWhen)+import Data.List (intercalate)  -- | Transforms an expression tree to an OMML XML Tree writeOMML :: DisplayType -> [Exp] -> Element@@ -83,12 +85,17 @@ maximum' xs = maximum xs  makeArray :: [Element] -> [Alignment] -> [ArrayLine] -> Element+makeArray props as rs+  | isRLSequence as = mnode "eqArr" $ map toE rs+  where toE r = mnode "e" (intercalate ampersand+                            (map (concatMap (showExp props)) r))+        ampersand = [mnode "r" [ mnode "t" ("&" :: String) ]] makeArray props as rs = mnode "m" $ mProps : map toMr rs   where mProps = mnode "mPr"                   [ mnodeA "baseJc" "center" ()                   , mnodeA "plcHide" "on" ()                   , mnode "mcs" $ map toMc as' ]-        as'    = take (maximum' $ map length rs) $ as ++ cycle [AlignCenter]+        as'    = take (maximum' $ map length rs) $ as ++ repeat AlignCenter         toMr r = mnode "mr" $ map (mnode "e" . concatMap (showExp props)) r         toMc a = mnode "mc" $ mnode "mcPr"                             [ mnodeA "mcJc" (toAlign a) ()@@ -111,17 +118,17 @@        TextNormal       -> [sty "p"]        TextBold         -> [sty "b"]        TextItalic       -> [sty "i"]-       TextMonospace    -> [sty "p", scr "monospace"]-       TextSansSerif    -> [sty "p", scr "sans-serif"]-       TextDoubleStruck -> [sty "p", scr "double-struck"]-       TextScript       -> [sty "p", scr "script"]-       TextFraktur      -> [sty "p", scr "fraktur"]+       TextMonospace    -> [scr "monospace", sty "p"]+       TextSansSerif    -> [scr "sans-serif", sty "p"]+       TextDoubleStruck -> [scr "double-struck", sty "p"]+       TextScript       -> [scr "script", sty "p"]+       TextFraktur      -> [scr "fraktur", sty "p"]        TextBoldItalic    -> [sty "bi"]-       TextSansSerifBold -> [sty "b", scr "sans-serif"]-       TextBoldScript    -> [sty "b", scr "script"]-       TextBoldFraktur   -> [sty "b", scr "fraktur"]-       TextSansSerifItalic -> [sty "i", scr "sans-serif"]-       TextSansSerifBoldItalic -> [sty "bi", scr "sans-serif"]+       TextSansSerifBold -> [scr "sans-serif", sty "b"]+       TextBoldScript    -> [scr "script", sty "b"]+       TextBoldFraktur   -> [scr "fraktur", sty "b"]+       TextSansSerifItalic -> [scr "sans-serif", sty "i"]+       TextSansSerifBoldItalic -> [scr "sans-serif", sty "bi"]    where sty x = mnodeA "sty" x ()          scr x = mnodeA "scr" x () @@ -223,7 +230,10 @@     EIdentifier ""   -> [str props "\x200B"]  -- 0-width space                        -- to avoid the dashed box we get otherwise; see #118-   EIdentifier x    -> [str props x]+   EIdentifier x+     | isUppercaseGreek x+     , null props -> [str [mnodeA "sty" "p" ()] x]+     | otherwise  -> [str props x]    EMathOperator x  -> [str (mnodeA "sty" "p" () : props) x]    ESymbol ty xs     | Just (c, xs') <- T.uncons xs
src/Text/TeXMath/Writers/TeX.hs view
@@ -199,16 +199,18 @@   tellGroup (writeExp e1) writeExp (ESuper b e1) = do   (if isFancy b then tellGroup else id) $ writeExp b-  case e1 of-    ESymbol Ord "\8242" -> tell [Token '\'']+  case S.toPrimes e1 of+    Just ps -> tell (replicate (T.length ps) (Token '\''))     _ -> do tell [Token '^']             tellGroup (writeExp e1) writeExp (ESubsup b e1 e2) = do   (if isFancy b then tellGroup else id) $ writeExp b   tell [Token '_']   tellGroup (writeExp e1)-  tell [Token '^']-  tellGroup (writeExp e2)+  case S.toPrimes e2 of+    Just ps -> tell (replicate (T.length ps) (Token '\''))+    _ -> do tell [Token '^']+            tellGroup (writeExp e2) writeExp (EOver convertible b e1) = do   env <- asks mathEnv   case xarrow b of@@ -285,7 +287,7 @@   tell [ControlSeq txtcmd]   tellGroup (mapM_ writeExp $ everywhere (mkT (fromUnicode ttype)) es) writeExp (EArray as rows)-  | isRLSequence as = do+  | S.isRLSequence as = do   env <- asks mathEnv   if "amsmath" `elem` env      then table "aligned" [] rows@@ -295,11 +297,6 @@   if "amsmath" `elem` env && all (== AlignCenter) aligns      then table "matrix" [] rows      else table "array" aligns rows--isRLSequence :: [Alignment] -> Bool-isRLSequence [AlignRight, AlignLeft] = True-isRLSequence (AlignRight : AlignLeft : as) = isRLSequence as-isRLSequence _ = False  table :: T.Text -> [Alignment] -> [ArrayLine] -> Math () table name aligns rows = do
src/Text/TeXMath/Writers/Typst.hs view
@@ -139,9 +139,14 @@     (_, EGrouped _) -> "frac(" <> writeExp e1 <> ", " <> writeExp e2 <> ")"     _ -> writeExp e1 <> " / " <> writeExp e2 writeExp (ESub b e1) = writeExpB b <> "_" <> writeExpS e1-writeExp (ESuper b e1) = writeExpB b <> "^" <> writeExpS e1+writeExp (ESuper b e1) = writeExpB b <>+  case S.toPrimes e1 of+    Just ps -> ps+    _ -> "^" <> writeExpS e1 writeExp (ESubsup b e1 e2) = writeExpB b <> "_" <> writeExpS e1 <>-                                           "^" <> writeExpS e2+  case S.toPrimes e2 of+    Just ps -> ps+    _ -> "^" <> writeExpS e2 writeExp (EOver _ (EOver _ b (ESymbol TOver "\9182")) e1) =   "overbrace(" <> writeExp b <> ", " <> writeExp e1 <> ")" writeExp (EOver _ (EOver _ b (ESymbol TOver "\9140")) e1) =
test/reader/omml/20.test view
@@ -814,119 +814,125 @@ </m:oMathPara>  >>> native-[ EStyled TextScript [ EIdentifier "A" ]-, EStyled TextScript [ EIdentifier "B" ]-, EStyled TextScript [ EIdentifier "C" ]-, EStyled TextScript [ EIdentifier "D" ]-, EStyled TextScript [ EIdentifier "E" ]-, EStyled TextScript [ EIdentifier "F" ]-, EStyled TextScript [ EIdentifier "G" ]-, EStyled TextScript [ EIdentifier "H" ]-, EStyled TextScript [ EIdentifier "I" ]-, EStyled TextScript [ EIdentifier "J" ]-, EStyled TextScript [ EIdentifier "K" ]-, EStyled TextScript [ EIdentifier "L" ]-, EStyled TextScript [ EIdentifier "M" ]-, EStyled TextScript [ EIdentifier "N" ]-, EStyled TextScript [ EIdentifier "O" ]-, EStyled TextScript [ EIdentifier "P" ]-, EStyled TextScript [ EIdentifier "Q" ]-, EStyled TextScript [ EIdentifier "R" ]-, EStyled TextScript [ EIdentifier "S" ]-, EStyled TextScript [ EIdentifier "T" ]-, EStyled TextScript [ EIdentifier "U" ]-, EStyled TextScript [ EIdentifier "V" ]-, EStyled TextScript [ EIdentifier "W" ]-, EStyled TextScript [ EIdentifier "X" ]-, EStyled TextScript [ EIdentifier "Y" ]-, EStyled TextScript [ EIdentifier "Z" ]-, EStyled TextScript [ EIdentifier "a" ]-, EStyled TextScript [ EIdentifier "b" ]-, EStyled TextScript [ EIdentifier "c" ]-, EStyled TextScript [ EIdentifier "d" ]-, EStyled TextScript [ EIdentifier "e" ]-, EStyled TextScript [ EIdentifier "f" ]-, EStyled TextScript [ EIdentifier "g" ]-, EStyled TextScript [ EIdentifier "h" ]-, EStyled TextScript [ EIdentifier "i" ]-, EStyled TextScript [ EIdentifier "j" ]-, EStyled TextScript [ EIdentifier "k" ]-, EStyled TextScript [ EIdentifier "l" ]-, EStyled TextScript [ EIdentifier "m" ]-, EStyled TextScript [ EIdentifier "n" ]-, EStyled TextScript [ EIdentifier "o" ]-, EStyled TextScript [ EIdentifier "p" ]-, EStyled TextScript [ EIdentifier "q" ]-, EStyled TextScript [ EIdentifier "r" ]-, EStyled TextScript [ EIdentifier "s" ]-, EStyled TextScript [ EIdentifier "t" ]-, EStyled TextScript [ EIdentifier "u" ]-, EStyled TextScript [ EIdentifier "v" ]-, EStyled TextScript [ EIdentifier "w" ]-, EStyled TextScript [ EIdentifier "x" ]-, EStyled TextScript [ EIdentifier "y" ]-, EStyled TextScript [ EIdentifier "z" ]-, EStyled TextDoubleStruck [ EIdentifier "A" ]-, EStyled TextDoubleStruck [ EIdentifier "B" ]-, EStyled TextDoubleStruck [ EIdentifier "C" ]-, EStyled TextDoubleStruck [ EIdentifier "D" ]-, EStyled TextDoubleStruck [ EIdentifier "E" ]-, EStyled TextDoubleStruck [ EIdentifier "F" ]-, EStyled TextDoubleStruck [ EIdentifier "G" ]-, EStyled TextDoubleStruck [ EIdentifier "H" ]-, EStyled TextDoubleStruck [ EIdentifier "I" ]-, EStyled TextDoubleStruck [ EIdentifier "J" ]-, EStyled TextDoubleStruck [ EIdentifier "K" ]-, EStyled TextDoubleStruck [ EIdentifier "L" ]-, EStyled TextDoubleStruck [ EIdentifier "M" ]-, EStyled TextDoubleStruck [ EIdentifier "N" ]-, EStyled TextDoubleStruck [ EIdentifier "O" ]-, EStyled TextDoubleStruck [ EIdentifier "P" ]-, EStyled TextDoubleStruck [ EIdentifier "Q" ]-, EStyled TextDoubleStruck [ EIdentifier "R" ]-, EStyled TextDoubleStruck [ EIdentifier "S" ]-, EStyled TextDoubleStruck [ EIdentifier "T" ]-, EStyled TextDoubleStruck [ EIdentifier "U" ]-, EStyled TextDoubleStruck [ EIdentifier "V" ]-, EStyled TextDoubleStruck [ EIdentifier "W" ]-, EStyled TextDoubleStruck [ EIdentifier "X" ]-, EStyled TextDoubleStruck [ EIdentifier "Y" ]-, EStyled TextDoubleStruck [ EIdentifier "Z" ]-, EStyled TextDoubleStruck [ EIdentifier "a" ]-, EStyled TextDoubleStruck [ EIdentifier "b" ]-, EStyled TextDoubleStruck [ EIdentifier "c" ]-, EStyled TextDoubleStruck [ EIdentifier "d" ]-, EStyled TextDoubleStruck [ EIdentifier "e" ]-, EStyled TextDoubleStruck [ EIdentifier "f" ]-, EStyled TextDoubleStruck [ EIdentifier "g" ]-, EStyled TextDoubleStruck [ EIdentifier "h" ]-, EStyled TextDoubleStruck [ EIdentifier "i" ]-, EStyled TextDoubleStruck [ EIdentifier "j" ]-, EStyled TextDoubleStruck [ EIdentifier "k" ]-, EStyled TextDoubleStruck [ EIdentifier "l" ]-, EStyled TextDoubleStruck [ EIdentifier "m" ]-, EStyled TextDoubleStruck [ EIdentifier "n" ]-, EStyled TextDoubleStruck [ EIdentifier "o" ]-, EStyled TextDoubleStruck [ EIdentifier "p" ]-, EStyled TextDoubleStruck [ EIdentifier "q" ]-, EStyled TextDoubleStruck [ EIdentifier "r" ]-, EStyled TextDoubleStruck [ EIdentifier "s" ]-, EStyled TextDoubleStruck [ EIdentifier "t" ]-, EStyled TextDoubleStruck [ EIdentifier "u" ]-, EStyled TextDoubleStruck [ EIdentifier "v" ]-, EStyled TextDoubleStruck [ EIdentifier "w" ]-, EStyled TextDoubleStruck [ EIdentifier "x" ]-, EStyled TextDoubleStruck [ EIdentifier "y" ]-, EStyled TextDoubleStruck [ EIdentifier "z" ]-, EStyled TextDoubleStruck [ ENumber "0" ]-, EStyled TextDoubleStruck [ ENumber "1" ]-, EStyled TextDoubleStruck [ ENumber "2" ]-, EStyled TextDoubleStruck [ ENumber "3" ]-, EStyled TextDoubleStruck [ ENumber "4" ]-, EStyled TextDoubleStruck [ ENumber "5" ]-, EStyled TextDoubleStruck [ ENumber "6" ]-, EStyled TextDoubleStruck [ ENumber "7" ]-, EStyled TextDoubleStruck [ ENumber "8" ]-, EStyled TextDoubleStruck [ ENumber "9" ]-, EStyled TextDoubleStruck [ ENumber "0" ]+[ EStyled+    TextScript+    [ EIdentifier "A"+    , EIdentifier "B"+    , EIdentifier "C"+    , EIdentifier "D"+    , EIdentifier "E"+    , EIdentifier "F"+    , EIdentifier "G"+    , EIdentifier "H"+    , EIdentifier "I"+    , EIdentifier "J"+    , EIdentifier "K"+    , EIdentifier "L"+    , EIdentifier "M"+    , EIdentifier "N"+    , EIdentifier "O"+    , EIdentifier "P"+    , EIdentifier "Q"+    , EIdentifier "R"+    , EIdentifier "S"+    , EIdentifier "T"+    , EIdentifier "U"+    , EIdentifier "V"+    , EIdentifier "W"+    , EIdentifier "X"+    , EIdentifier "Y"+    , EIdentifier "Z"+    , EIdentifier "a"+    , EIdentifier "b"+    , EIdentifier "c"+    , EIdentifier "d"+    , EIdentifier "e"+    , EIdentifier "f"+    , EIdentifier "g"+    , EIdentifier "h"+    , EIdentifier "i"+    , EIdentifier "j"+    , EIdentifier "k"+    , EIdentifier "l"+    , EIdentifier "m"+    , EIdentifier "n"+    , EIdentifier "o"+    , EIdentifier "p"+    , EIdentifier "q"+    , EIdentifier "r"+    , EIdentifier "s"+    , EIdentifier "t"+    , EIdentifier "u"+    , EIdentifier "v"+    , EIdentifier "w"+    , EIdentifier "x"+    , EIdentifier "y"+    , EIdentifier "z"+    ]+, EStyled+    TextDoubleStruck+    [ EIdentifier "A"+    , EIdentifier "B"+    , EIdentifier "C"+    , EIdentifier "D"+    , EIdentifier "E"+    , EIdentifier "F"+    , EIdentifier "G"+    , EIdentifier "H"+    , EIdentifier "I"+    , EIdentifier "J"+    , EIdentifier "K"+    , EIdentifier "L"+    , EIdentifier "M"+    , EIdentifier "N"+    , EIdentifier "O"+    , EIdentifier "P"+    , EIdentifier "Q"+    , EIdentifier "R"+    , EIdentifier "S"+    , EIdentifier "T"+    , EIdentifier "U"+    , EIdentifier "V"+    , EIdentifier "W"+    , EIdentifier "X"+    , EIdentifier "Y"+    , EIdentifier "Z"+    , EIdentifier "a"+    , EIdentifier "b"+    , EIdentifier "c"+    , EIdentifier "d"+    , EIdentifier "e"+    , EIdentifier "f"+    , EIdentifier "g"+    , EIdentifier "h"+    , EIdentifier "i"+    , EIdentifier "j"+    , EIdentifier "k"+    , EIdentifier "l"+    , EIdentifier "m"+    , EIdentifier "n"+    , EIdentifier "o"+    , EIdentifier "p"+    , EIdentifier "q"+    , EIdentifier "r"+    , EIdentifier "s"+    , EIdentifier "t"+    , EIdentifier "u"+    , EIdentifier "v"+    , EIdentifier "w"+    , EIdentifier "x"+    , EIdentifier "y"+    , EIdentifier "z"+    , ENumber "0"+    , ENumber "1"+    , ENumber "2"+    , ENumber "3"+    , ENumber "4"+    , ENumber "5"+    , ENumber "6"+    , ENumber "7"+    , ENumber "8"+    , ENumber "9"+    , ENumber "0"+    ] ]
test/reader/tex/05.test view
@@ -10,7 +10,9 @@ , ESpace ((-1) % 6) , ESubsup (ESymbol Op "\8747") (EIdentifier "a") (EIdentifier "s") , EIdentifier "f"-, EDelimited "(" ")" [ Right (EIdentifier "y") ]+, ESymbol Open "("+, EIdentifier "y"+, ESymbol Close ")" , ESpace (1 % 6) , EIdentifier "d" , EIdentifier "y"@@ -20,14 +22,14 @@ , ESymbol Rel "=" , ESubsup (ESymbol Op "\8747") (EIdentifier "a") (EIdentifier "x") , EIdentifier "f"-, EDelimited "(" ")" [ Right (EIdentifier "y") ]-, EDelimited-    "("-    ")"-    [ Right (EIdentifier "x")-    , Right (ESymbol Bin "\8722")-    , Right (EIdentifier "y")-    ]+, ESymbol Open "("+, EIdentifier "y"+, ESymbol Close ")"+, ESymbol Open "("+, EIdentifier "x"+, ESymbol Bin "\8722"+, EIdentifier "y"+, ESymbol Close ")" , ESpace (1 % 6) , EIdentifier "d" , EIdentifier "y"
test/reader/tex/07.test view
@@ -3,20 +3,24 @@   >>> native-[ EIdentifier "u"-, ESymbol Ord "\8243"+[ ESuper (EIdentifier "u") (ESymbol Pun "\8243") , ESymbol Bin "+" , EIdentifier "p"-, EDelimited "(" ")" [ Right (EIdentifier "x") ]-, EIdentifier "u"-, ESymbol Ord "\8242"+, ESymbol Open "("+, EIdentifier "x"+, ESymbol Close ")"+, ESuper (EIdentifier "u") (ESymbol Pun "\8242") , ESymbol Bin "+" , EIdentifier "q"-, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESymbol Open "("+, EIdentifier "x"+, ESymbol Close ")" , EIdentifier "u" , ESymbol Rel "=" , EIdentifier "f"-, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESymbol Open "("+, EIdentifier "x"+, ESymbol Close ")" , ESymbol Pun "," , ESpace (1 % 1) , EIdentifier "x"
test/reader/tex/08.test view
@@ -5,33 +5,32 @@   >>> native-[ EDelimited-    "|"-    "|"-    [ Right (EOver False (EIdentifier "z") (ESymbol Accent "\8254")) ]+[ ESymbol Open "|"+, EOver False (EIdentifier "z") (ESymbol Accent "\8254")+, ESymbol Open "|" , ESymbol Rel "="-, EDelimited "|" "|" [ Right (EIdentifier "z") ]+, ESymbol Open "|"+, EIdentifier "z"+, ESymbol Open "|" , ESymbol Pun ","-, EDelimited-    "|"-    "|"-    [ Right-        (ESuper-           (EDelimited-              "("-              ")"-              [ Right (EOver False (EIdentifier "z") (ESymbol Accent "\8254")) ])-           (EIdentifier "n"))-    ]+, ESymbol Open "|"+, ESymbol Open "("+, EOver False (EIdentifier "z") (ESymbol Accent "\8254")+, ESuper (ESymbol Close ")") (EIdentifier "n")+, ESymbol Open "|" , ESymbol Rel "="-, ESuper-    (EDelimited "|" "|" [ Right (EIdentifier "z") ]) (EIdentifier "n")+, ESymbol Open "|"+, EIdentifier "z"+, ESuper (ESymbol Open "|") (EIdentifier "n") , ESymbol Pun "," , EMathOperator "arg"-, EDelimited-    "(" ")" [ Right (ESuper (EIdentifier "z") (EIdentifier "n")) ]+, ESymbol Open "("+, ESuper (EIdentifier "z") (EIdentifier "n")+, ESymbol Close ")" , ESymbol Rel "=" , EIdentifier "n" , EMathOperator "arg"-, EDelimited "(" ")" [ Right (EIdentifier "z") ]+, ESymbol Open "("+, EIdentifier "z"+, ESymbol Close ")" ]
test/reader/tex/09.test view
@@ -12,9 +12,12 @@        , ESub (EIdentifier "z") (ENumber "0")        ]) , EIdentifier "f"-, EDelimited "(" ")" [ Right (EIdentifier "z") ]+, ESymbol Open "("+, EIdentifier "z"+, ESymbol Close ")" , ESymbol Rel "=" , EIdentifier "f"-, EDelimited-    "(" ")" [ Right (ESub (EIdentifier "z") (ENumber "0")) ]+, ESymbol Open "("+, ESub (EIdentifier "z") (ENumber "0")+, ESymbol Close ")" ]
test/reader/tex/10.test view
@@ -8,7 +8,9 @@  >>> native [ ESub (EIdentifier "\981") (EIdentifier "n")-, EDelimited "(" ")" [ Right (EIdentifier "\954") ]+, ESymbol Open "("+, EIdentifier "\954"+, ESymbol Close ")" , ESymbol Rel "=" , EFraction     NormalFrac@@ -23,8 +25,10 @@     NormalFrac     (EGrouped        [ EMathOperator "sin"-       , EDelimited-           "(" ")" [ Right (EIdentifier "\954") , Right (EIdentifier "R") ]+       , ESymbol Open "("+       , EIdentifier "\954"+       , EIdentifier "R"+       , ESymbol Close ")"        ])     (EGrouped [ EIdentifier "\954" , EIdentifier "R" ]) , EFraction@@ -41,7 +45,9 @@            (EGrouped               [ ESymbol Ord "\8706"               , ESub (EIdentifier "D") (EIdentifier "n")-              , EDelimited "(" ")" [ Right (EIdentifier "R") ]+              , ESymbol Open "("+              , EIdentifier "R"+              , ESymbol Close ")"               ])            (EGrouped [ ESymbol Ord "\8706" , EIdentifier "R" ]))     ]
test/reader/tex/11.test view
@@ -6,7 +6,9 @@  >>> native [ ESub (EIdentifier "\981") (EIdentifier "n")-, EDelimited "(" ")" [ Right (EIdentifier "\954") ]+, ESymbol Open "("+, EIdentifier "\954"+, ESymbol Close ")" , ESymbol Rel "=" , ENumber "0.033" , ESubsup (EIdentifier "C") (EIdentifier "n") (ENumber "2")
test/reader/tex/12.test view
@@ -9,7 +9,9 @@  >>> native [ EIdentifier "f"-, EDelimited "(" ")" [ Right (EIdentifier "x") ]+, ESymbol Open "("+, EIdentifier "x"+, ESymbol Close ")" , ESymbol Rel "=" , EDelimited     "{"
test/reader/tex/13.test view
@@ -8,23 +8,21 @@ >>> native [ ESub (EGrouped []) (EIdentifier "p") , ESub (EIdentifier "F") (EIdentifier "q")-, EDelimited-    "("-    ")"-    [ Right (ESub (EIdentifier "a") (ENumber "1"))-    , Right (ESymbol Pun ",")-    , Right (ESymbol Ord "\8230")-    , Right (ESymbol Pun ",")-    , Right (ESub (EIdentifier "a") (EIdentifier "p"))-    , Right (ESymbol Pun ";")-    , Right (ESub (EIdentifier "c") (ENumber "1"))-    , Right (ESymbol Pun ",")-    , Right (ESymbol Ord "\8230")-    , Right (ESymbol Pun ",")-    , Right (ESub (EIdentifier "c") (EIdentifier "q"))-    , Right (ESymbol Pun ";")-    , Right (EIdentifier "z")-    ]+, ESymbol Open "("+, ESub (EIdentifier "a") (ENumber "1")+, ESymbol Pun ","+, ESymbol Ord "\8230"+, ESymbol Pun ","+, ESub (EIdentifier "a") (EIdentifier "p")+, ESymbol Pun ";"+, ESub (EIdentifier "c") (ENumber "1")+, ESymbol Pun ","+, ESymbol Ord "\8230"+, ESymbol Pun ","+, ESub (EIdentifier "c") (EIdentifier "q")+, ESymbol Pun ";"+, EIdentifier "z"+, ESymbol Close ")" , ESymbol Rel "=" , EUnderover     True@@ -34,26 +32,22 @@ , EFraction     NormalFrac     (EGrouped-       [ ESub-           (EDelimited-              "(" ")" [ Right (ESub (EIdentifier "a") (ENumber "1")) ])-           (EIdentifier "n")+       [ ESymbol Open "("+       , ESub (EIdentifier "a") (ENumber "1")+       , ESub (ESymbol Close ")") (EIdentifier "n")        , ESymbol Ord "\8943"-       , ESub-           (EDelimited-              "(" ")" [ Right (ESub (EIdentifier "a") (EIdentifier "p")) ])-           (EIdentifier "n")+       , ESymbol Open "("+       , ESub (EIdentifier "a") (EIdentifier "p")+       , ESub (ESymbol Close ")") (EIdentifier "n")        ])     (EGrouped-       [ ESub-           (EDelimited-              "(" ")" [ Right (ESub (EIdentifier "c") (ENumber "1")) ])-           (EIdentifier "n")+       [ ESymbol Open "("+       , ESub (EIdentifier "c") (ENumber "1")+       , ESub (ESymbol Close ")") (EIdentifier "n")        , ESymbol Ord "\8943"-       , ESub-           (EDelimited-              "(" ")" [ Right (ESub (EIdentifier "c") (EIdentifier "q")) ])-           (EIdentifier "n")+       , ESymbol Open "("+       , ESub (EIdentifier "c") (EIdentifier "q")+       , ESub (ESymbol Close ")") (EIdentifier "n")        ]) , EFraction     NormalFrac
test/reader/tex/axiom_of_power_set.test view
@@ -11,27 +11,22 @@ , ESymbol Op "\8704" , EIdentifier "B" , ESpace (1 % 6)-, EDelimited-    "["-    "]"-    [ Right (EIdentifier "B")-    , Right (ESymbol Rel "\8712")-    , Right (EIdentifier "P")-    , Right (ESymbol Rel "\8660")-    , Right (ESymbol Op "\8704")-    , Right (EIdentifier "C")-    , Right (ESpace (1 % 6))-    , Right-        (EDelimited-           "("-           ")"-           [ Right (EIdentifier "C")-           , Right (ESymbol Rel "\8712")-           , Right (EIdentifier "B")-           , Right (ESymbol Rel "\8658")-           , Right (EIdentifier "C")-           , Right (ESymbol Rel "\8712")-           , Right (EIdentifier "A")-           ])-    ]+, ESymbol Open "["+, EIdentifier "B"+, ESymbol Rel "\8712"+, EIdentifier "P"+, ESymbol Rel "\8660"+, ESymbol Op "\8704"+, EIdentifier "C"+, ESpace (1 % 6)+, ESymbol Open "("+, EIdentifier "C"+, ESymbol Rel "\8712"+, EIdentifier "B"+, ESymbol Rel "\8658"+, EIdentifier "C"+, ESymbol Rel "\8712"+, EIdentifier "A"+, ESymbol Close ")"+, ESymbol Close "]" ]
test/reader/tex/binomial_coefficient.test view
@@ -3,13 +3,11 @@  >>> native [ EStyled TextNormal [ EStyled TextBold [ EIdentifier "C" ] ]-, EDelimited-    "("-    ")"-    [ Right (EIdentifier "n")-    , Right (ESymbol Pun ",")-    , Right (EIdentifier "k")-    ]+, ESymbol Open "("+, EIdentifier "n"+, ESymbol Pun ","+, EIdentifier "k"+, ESymbol Close ")" , ESymbol Rel "=" , ESubsup     (EStyled TextNormal [ EStyled TextBold [ EIdentifier "C" ] ])@@ -34,13 +32,11 @@        [ EIdentifier "k"        , ESymbol Ord "!"        , ESpace (1 % 6)-       , EDelimited-           "("-           ")"-           [ Right (EIdentifier "n")-           , Right (ESymbol Bin "\8722")-           , Right (EIdentifier "k")-           ]+       , ESymbol Open "("+       , EIdentifier "n"+       , ESymbol Bin "\8722"+       , EIdentifier "k"+       , ESymbol Close ")"        , ESymbol Ord "!"        ]) ]
test/reader/tex/deMorgans_law.test view
@@ -4,19 +4,21 @@  >>> native [ ESymbol Op "\172"-, EDelimited-    "("-    ")"-    [ Right (EIdentifier "p")-    , Right (ESymbol Bin "\8743")-    , Right (EIdentifier "q")-    ]+, ESymbol Open "("+, EIdentifier "p"+, ESymbol Bin "\8743"+, EIdentifier "q"+, ESymbol Close ")" , ESymbol Rel "\8660"-, EDelimited-    "(" ")" [ Right (ESymbol Op "\172") , Right (EIdentifier "p") ]+, ESymbol Open "("+, ESymbol Op "\172"+, EIdentifier "p"+, ESymbol Close ")" , ESymbol Bin "\8744"-, EDelimited-    "(" ")" [ Right (ESymbol Op "\172") , Right (EIdentifier "q") ]+, ESymbol Open "("+, ESymbol Op "\172"+, EIdentifier "q"+, ESymbol Close ")" , EOver     False     (EGrouped
test/reader/tex/differentiable_manifold.test view
@@ -15,10 +15,14 @@         (EArray            [ AlignLeft ]            [ [ [ ESub (EIdentifier "\947") (ENumber "1")-               , EDelimited "(" ")" [ Right (ENumber "0") ]+               , ESymbol Open "("+               , ENumber "0"+               , ESymbol Close ")"                , ESymbol Rel "="                , ESub (EIdentifier "\947") (ENumber "2")-               , EDelimited "(" ")" [ Right (ENumber "0") ]+               , ESymbol Open "("+               , ENumber "0"+               , ESymbol Close ")"                , ESymbol Rel "="                , EIdentifier "p"                , ESymbol Pun ","@@ -38,7 +42,9 @@                       , Right (EIdentifier "\981")                       , Right (ESymbol Bin "\8728")                       , Right (ESub (EIdentifier "\947") (ENumber "1"))-                      , Right (EDelimited "(" ")" [ Right (EIdentifier "t") ])+                      , Right (ESymbol Open "(")+                      , Right (EIdentifier "t")+                      , Right (ESymbol Close ")")                       ])                    (EGrouped [ EIdentifier "t" , ESymbol Rel "=" , ENumber "0" ])                , ESymbol Rel "="@@ -55,7 +61,9 @@                       , Right (EIdentifier "\981")                       , Right (ESymbol Bin "\8728")                       , Right (ESub (EIdentifier "\947") (ENumber "2"))-                      , Right (EDelimited "(" ")" [ Right (EIdentifier "t") ])+                      , Right (ESymbol Open "(")+                      , Right (EIdentifier "t")+                      , Right (ESymbol Close ")")                       ])                    (EGrouped [ EIdentifier "t" , ESymbol Rel "=" , ENumber "0" ])                ]
test/reader/tex/schwinger_dyson.test view
@@ -21,7 +21,9 @@                          (EIdentifier "\948")                          (EGrouped [ EIdentifier "\948" , EIdentifier "\981" ]))                   , Right (EIdentifier "F")-                  , Right (EDelimited "[" "]" [ Right (EIdentifier "\981") ])+                  , Right (ESymbol Open "[")+                  , Right (EIdentifier "\981")+                  , Right (ESymbol Close "]")                   ])            ])     , Right (EIdentifier "\968")@@ -43,14 +45,18 @@                   "{"                   "}"                   [ Right (EIdentifier "F")-                  , Right (EDelimited "[" "]" [ Right (EIdentifier "\981") ])+                  , Right (ESymbol Open "[")+                  , Right (EIdentifier "\981")+                  , Right (ESymbol Close "]")                   , Right                       (EFraction                          NormalFrac                          (EIdentifier "\948")                          (EGrouped [ EIdentifier "\948" , EIdentifier "\981" ]))                   , Right (EIdentifier "S")-                  , Right (EDelimited "[" "]" [ Right (EIdentifier "\981") ])+                  , Right (ESymbol Open "[")+                  , Right (EIdentifier "\981")+                  , Right (ESymbol Close "]")                   ])            ])     , Right (EIdentifier "\968")
test/reader/tex/sophomores_dream.test view
@@ -14,9 +14,11 @@     (EGrouped [ EIdentifier "n" , ESymbol Rel "=" , ENumber "1" ])     (ESymbol Ord "\8734") , EGrouped-    [ ESuper-        (EDelimited-           "(" ")" [ Right (ESymbol Ord "\8722") , Right (ENumber "1") ])+    [ ESymbol Open "("+    , ESymbol Ord "\8722"+    , ENumber "1"+    , ESuper+        (ESymbol Close ")")         (EGrouped [ EIdentifier "n" , ESymbol Bin "+" , ENumber "1" ])     , ESpace (1 % 6)     , ESuper
test/reader/tex/sphere_volume.test view
@@ -95,13 +95,11 @@             (ENumber "0")             (EGrouped [ ENumber "2" , EIdentifier "\960" ])         , ESpace (2 % 9)-        , EDelimited-            "("-            ")"-            [ Right (ESymbol Ord "\8722")-            , Right (EMathOperator "cos")-            , Right (EIdentifier "\952")-            ]+        , ESymbol Open "("+        , ESymbol Ord "\8722"+        , EMathOperator "cos"+        , EIdentifier "\952"+        , ESymbol Close ")"         , ESubsup             (EScaled (9 % 5) (ESymbol Open "|"))             (ENumber "0")
test/reader/tex/substack.test view
@@ -31,11 +31,9 @@          ]        ]) , EIdentifier "P"-, EDelimited-    "("-    ")"-    [ Right (EIdentifier "i")-    , Right (ESymbol Pun ",")-    , Right (EIdentifier "j")-    ]+, ESymbol Open "("+, EIdentifier "i"+, ESymbol Pun ","+, EIdentifier "j"+, ESymbol Close ")" ]
test/reader/tex/tokens.test view
@@ -23,7 +23,9 @@ , EFraction NormalFrac (EIdentifier "\981") (EIdentifier "\958") , EFraction NormalFrac (EIdentifier "\981") (EIdentifier "\958") , EFraction NormalFrac (EIdentifier "\981") (EIdentifier "\958")-, EDelimited "(" ")" [ Right (EIdentifier "\981") ]-, EDelimited "(" ")" [ Right (EIdentifier "\981") ]+, EGrouped+    [ ESymbol Open "(" , EIdentifier "\981" , ESymbol Close ")" ]+, EGrouped+    [ ESymbol Open "(" , EIdentifier "\981" , ESymbol Close ")" ] , EIdentifier "\958" ]
test/regression/235.test view
@@ -89,7 +89,7 @@ , EIdentifier "\953" , EIdentifier "\922" , EIdentifier "\954"-, ESymbol Alpha "\120600"+, EIdentifier "\120600" , EIdentifier "\923" , EIdentifier "\120556" , EIdentifier "\955"@@ -105,7 +105,7 @@ , EIdentifier "\928" , EIdentifier "\120561" , EIdentifier "\960"-, ESymbol Alpha "\982"+, EIdentifier "\982" , EIdentifier "\929" , EIdentifier "\961" , EIdentifier "\931"
test/regression/241.test view
@@ -10,18 +10,26 @@       , [ EText TextNormal "Waning immunity episode" ]       ]     , [ [ ESuper (EIdentifier "b") (ESymbol Ord "\8242")-        , EDelimited "(" ")" [ Right (EIdentifier "t") ]+        , ESymbol Open "("+        , EIdentifier "t"+        , ESymbol Close ")"         , ESymbol Rel "="         , ESub (EIdentifier "\956") (ENumber "0")         , EIdentifier "b"-        , EDelimited "(" ")" [ Right (EIdentifier "t") ]+        , ESymbol Open "("+        , EIdentifier "t"+        , ESymbol Close ")"         , ESymbol Bin "\8722"         , EIdentifier "c"         , EIdentifier "y"-        , EDelimited "(" ")" [ Right (EIdentifier "t") ]+        , ESymbol Open "("+        , EIdentifier "t"+        , ESymbol Close ")"         ]       , [ EIdentifier "b"-        , EDelimited "(" ")" [ Right (EIdentifier "t") ]+        , ESymbol Open "("+        , EIdentifier "t"+        , ESymbol Close ")"         , ESymbol Rel "="         , ENumber "0"         ]
test/regression/245b.test view
@@ -95,10 +95,10 @@ upright("\\underrightarrow") accent(x, ⃯)\ upright("\\underline") underline(x)\ upright("Trailing signs:")\-upright("^\\prime") x^(')\-upright("^\\dprime") x^('')\-upright("^\\trprime") x^(''')\-upright("^\\qprime") x^('''')\+upright("^\\prime") x'\+upright("^\\dprime") x''\+upright("^\\trprime") x'''\+upright("^\\qprime") x''''\ upright("^\\backprime") x^prime.rev\ upright("^\\backdprime") x^prime.double.rev\ upright("^\\backtrprime") x^prime.triple.rev\
+ test/regression/252.test view
@@ -0,0 +1,68 @@+<<< mml+<math display="block">+  <mmultiscripts>+    <mi>X</mi> <!-- base expression -->+    <mn>1</mn> <!-- post-sub-script-1 -->+    <mn>2</mn> <!-- post-sup-script-1 -->+    <mn>3</mn> <!-- post-sub-script-2 -->+    <mn>4</mn> <!-- post-sup-script-2 -->+    <mprescripts />+    <mn>5</mn> <!-- pre-sub-script-1 -->+    <mn>6</mn> <!-- pre-sup-script-1 -->+    <mn>7</mn> <!-- pre-sub-script-2 -->+    <mn>8</mn> <!-- pre-sup-script-2 -->+  </mmultiscripts>+  <mmultiscripts>+    <mi>X</mi> <!-- base expression -->+    <mn>1</mn> <!-- post-sub-script -->+    <mn>4</mn> <!-- post-sup-script -->+    <mprescripts />+    <mn>8</mn> <!-- pre-sub-script -->+  </mmultiscripts>+  <mmultiscripts>+    <mi>X</mi> <!-- base expression -->+    <none/>+    <mn>4</mn> <!-- post-sup-script -->+    <mprescripts />+    <mn>8</mn> <!-- pre-sub-script -->+  </mmultiscripts>+  <mmultiscripts>+    <mi>X</mi> <!-- base expression -->+    <mn>1</mn> <!-- post-sub-script -->+  </mmultiscripts>+  <MMULTISCRIPTS>+  <MROW><MI>F</MI></MROW>+  <MROW><MN>2</MN></MROW>+  <NONE>+  </NONE>+  <MPRESCRIPTS></MPRESCRIPTS>+  <MROW><MN>3</MN></MROW>+  <NONE>+  </NONE>+  </MMULTISCRIPTS>+</math>+>>> native+[ EGrouped+    [ ESubsup+        (EGrouped [])+        (EGrouped [ ENumber "5" , ENumber "7" ])+        (EGrouped [ ENumber "6" , ENumber "8" ])+    , ESubsup+        (EIdentifier "X")+        (EGrouped [ ENumber "1" , ENumber "3" ])+        (EGrouped [ ENumber "2" , ENumber "4" ])+    ]+, EGrouped+    [ ESub (EGrouped []) (ENumber "8")+    , ESubsup (EIdentifier "X") (ENumber "1") (ENumber "4")+    ]+, EGrouped+    [ ESub (EGrouped []) (ENumber "8")+    , ESubsup (EIdentifier "X") (EGrouped []) (ENumber "4")+    ]+, ESub (EIdentifier "X") (ENumber "1")+, EGrouped+    [ ESubsup (EGrouped []) (ENumber "3") (EGrouped [])+    , ESubsup (EIdentifier "F") (ENumber "2") (EGrouped [])+    ]+]
test/test-texmath.hs view
@@ -133,6 +133,7 @@ readers :: [(T.Text, T.Text -> Either T.Text [Exp])] readers = [ ("tex", readTeX)           , ("mml", readMathML)+          , ("mathml", readMathML)           , ("omml", readOMML)           , ("native", readEither)           ]
test/writer/eqn/complex3.test view
@@ -7684,7 +7684,7 @@ ] >>> eqn matrix{-ccol{ {2  {sum {a  b}}} above {x sup {prime 3}} above {{{f sup prime  {( x )}} + {sin  cos  theta}} = 1} above {{{f  {( z )}} = {sum from {n = 0} to inf {a sub n  z sup n}}} roman ", " {{left | z right | < R} \[u200B] {( {R != 0} )}}} above {left ∫ {""} sub C {left ( {sum from {n = 0} to inf {a sub n  z sup n}} right )  {\[u2146] z}} right "" = {sum from {n = 0} to inf {a sub n  left ∫ {""} sub C {z sup n  {\[u2146] z}} right ""}}} above {{lim from {n -> inf} left | left ∫ {""} sub C {left [ {{f  {( z )}} - {sum from {k = 0} to n {a sub k  z sup k}}} right ]  {\[u2146] z}} right "" right |} = 0} above {left "" {n >= {N  {( \[u03B5] )}}} "⇒" {left | {{f  {( z )}} - {sum from {k = 0} to n {a sub k  z sup k}}} right | < \[u03B5]} right ""} above {{10 roman " Bq"} + {10 roman " Ci"}} above {{10 roman " amol"} + {10 roman " Emol"} - {10 roman " fmol"} + {10 roman " Gmol"} - {10 roman " kmol"} + {10 roman " Mmol"}} above {{10 roman " μmol"} + {10 roman " mmol"} - {10 roman " mol"} + {10 roman " nmol"} - {10 roman " Pmol"} + {10 roman " pmol"} - {10 roman " Tmol"}} above {{10 roman " acre"} + {10 roman " hectare"} - {10 {roman " ft"} sup 2} + {10 {roman " in"} sup 2} - {10 {roman " m"} sup 2}} above {{10 roman " A"} + {10 roman " kA"} - {10 roman " μA"} + {10 roman " mA"} - {10 roman " nA"}} above {{10 roman " F"} + {10 roman " μF"} - {10 roman " mF"} + {10 roman " nF"} - {10 roman " pF"}} above {{10 roman " C"} + {1.0 roman " m/s/s"} - {0.1 {roman " m" / {roman "s"} sup 2}}} above {{10 roman " kS"} + {10 roman " μS"} - {10 roman " mS"} + {10 roman " S"}} above {{10 roman " kV"} + {10 roman " MV"} - {10 roman " μV"} + {10 roman " mV"} - {10 roman " nV"} + {10 roman " pV"} - {10 roman " V"}} above {{10 roman " GΩ"} + {10 roman " kΩ"} - {10 roman " MΩ"} + {10 roman " mΩ"} - {10 roman " Ω"}} above {{10 roman " Btu"} + {10 roman " cal"} - {10 roman " eV"} + {10 roman " erg"} - {10 roman " GeV"} + {10 roman " GJ"}} above {{10 roman " J"} + {10 roman " kcal"} - {10 roman " kJ"} + {10 roman " MeV"} - {10 roman " MJ"} + {10 roman " μJ"} - {10 roman " mJ"} + {10 roman " nJ"}} above {{10 roman " dyn"} + {10 roman " kN"} - {10 roman " MN"} + {10 roman " μN"} - {10 roman " mN"} + {10 roman " N"} - {10 roman " ozf"} + {10 roman " lbf"}} above {{10 roman " EHz"} + {10 roman " GHz"} - {10 roman " Hz"} + {10 roman " kHz"} - {10 roman " MHz"} + {10 roman " PHz"} - {10 roman " THz"}} above {{10 roman " fc"} + {10 roman " lx"} - {10 roman " phot"}} above {{10 roman " Å"} + {10 roman " am"} - {10 roman " cm"} + {10 roman " dm"} - {10 roman " fm"} + {10 roman " ft"} - {10 roman " in"}} above {{10 roman " km"} + {10 roman " m"} - {10 roman " μm"} + {10 roman " mi"} - {10 roman " mm"} + {10 roman " nm"} - {10 roman " pm"}} above {10 roman " sb"} above {10 roman " lm"} above {10 roman " cd"} above {{10 roman " Mx"} + {10 roman " μWb"} - {10 roman " mWb"} + {10 roman " nWb"} - {10 roman " Wb"}} above {{10 roman " G"} + {10 roman " μT"} - {10 roman " mT"} + {10 roman " nT"} - {10 roman " pT"} + {10 roman " T"}} above {{10 roman " H"} + {10 roman " μH"} - {10 roman " mH"}} above {{10 roman " u"} + {10 roman " cg"} - {10 roman " dg"} + {10 roman " g"} - {10 roman " kg"} + {10 roman " μg"} - {10 roman " mg"} + {10 roman " lb"} - {10 roman " slug"}} above {{10 roman " °"} + {10 roman " μrad"} - {10 roman " mrad"} + {10 {fwd 0} sup {roman "′"}} - {10 roman " rad"} + {10 {fwd 0} sup {roman "′′"}}} above {{10 roman " GW"} + {10 roman " hp"} - {10 roman " kW"} + {10 roman " MW"} - {10 roman " μW"} + {10 roman " mW"} - {10 roman " nW"} + {10 roman " W"}} above {{10 roman " atm"} + {10 roman " bar"} - {10 roman " kbar"} + {10 roman " kPa"} - {10 roman " MPa"} + {10 roman " μPa"} - {10 roman " mbar"} + {10 roman " mmHg"} - {10 roman " Pa"} + {10 roman " torr"}} above {10 roman " sr"} above {{10 roman " °C"} + {10 roman " °F"} - {10 roman " K"}} above {{10 roman " as"} + {10 roman " d"} - {10 roman " fs"} + {10 roman " h"} - {10 roman " μs"} + {10 roman " ms"} - {10 roman " min"} + {10 roman " ns"} - {10 roman " ps"} + {10 roman " s"} - {10 roman " y"}} above {{10 {roman " ft"} sup 3} + {10 {roman " in"} sup 3} - {10 {roman " m"} sup 3} + {10 roman " gal"} - {10 roman " l"}} above {{10 roman " ml"} + {10 roman " pint"} - {10 roman " qt"}} above {1 over {x  left ( y right )} = {left ( {{- {int {e sup {{- 1 over 2}  y sup 2}  {sin  y}  {\[u2146] y}}}} + C sub 1} right )  e sup {1 over 2  y sup 2}}} above {{{\[u2145] sub x y} - y} = {sin  x}} above {left ( 1 over 2 right )  left ( 1 over 2 right )  left ( 1 over 2 right )} above {left [ 1 over 2 right ]  left ( 1 over 2 right )  left { 1 over 2 right }} above {left 〈 1 over 2 right 〉  left ⌊ 1 over 2 right ⌋  left ⌈ 1 over 2 right ⌉} above {left "" "↑" 1 over 2 "↑" right ""  left "" "↓" 1 over 2 "↓" right ""  left "" "↕" 1 over 2 "↕" right ""} above {1 over 2  1 over 2  1 over 2} above {1 over 2  1 over 2  1 over 2} above {1 over 2  1 over 2  1 over 2} above {{- {( {a - b} )}} = {b - a}} above {{2 over 5 + 3 over 7} = {{2 \[u22C5] 7} + {3 \[u22C5] 5}} over 35 = 29 over 35} above {left | a right | = left { matrix{+ccol{ {2  {sum {a  b}}} above {x sup {prime 3}} above {{{f'  {( x )}} + {sin  cos  theta}} = 1} above {{{f  {( z )}} = {sum from {n = 0} to inf {a sub n  z sup n}}} roman ", " {{left | z right | < R} \[u200B] {( {R != 0} )}}} above {left ∫ {""} sub C {left ( {sum from {n = 0} to inf {a sub n  z sup n}} right )  {\[u2146] z}} right "" = {sum from {n = 0} to inf {a sub n  left ∫ {""} sub C {z sup n  {\[u2146] z}} right ""}}} above {{lim from {n -> inf} left | left ∫ {""} sub C {left [ {{f  {( z )}} - {sum from {k = 0} to n {a sub k  z sup k}}} right ]  {\[u2146] z}} right "" right |} = 0} above {left "" {n >= {N  {( \[u03B5] )}}} "⇒" {left | {{f  {( z )}} - {sum from {k = 0} to n {a sub k  z sup k}}} right | < \[u03B5]} right ""} above {{10 roman " Bq"} + {10 roman " Ci"}} above {{10 roman " amol"} + {10 roman " Emol"} - {10 roman " fmol"} + {10 roman " Gmol"} - {10 roman " kmol"} + {10 roman " Mmol"}} above {{10 roman " μmol"} + {10 roman " mmol"} - {10 roman " mol"} + {10 roman " nmol"} - {10 roman " Pmol"} + {10 roman " pmol"} - {10 roman " Tmol"}} above {{10 roman " acre"} + {10 roman " hectare"} - {10 {roman " ft"} sup 2} + {10 {roman " in"} sup 2} - {10 {roman " m"} sup 2}} above {{10 roman " A"} + {10 roman " kA"} - {10 roman " μA"} + {10 roman " mA"} - {10 roman " nA"}} above {{10 roman " F"} + {10 roman " μF"} - {10 roman " mF"} + {10 roman " nF"} - {10 roman " pF"}} above {{10 roman " C"} + {1.0 roman " m/s/s"} - {0.1 {roman " m" / {roman "s"} sup 2}}} above {{10 roman " kS"} + {10 roman " μS"} - {10 roman " mS"} + {10 roman " S"}} above {{10 roman " kV"} + {10 roman " MV"} - {10 roman " μV"} + {10 roman " mV"} - {10 roman " nV"} + {10 roman " pV"} - {10 roman " V"}} above {{10 roman " GΩ"} + {10 roman " kΩ"} - {10 roman " MΩ"} + {10 roman " mΩ"} - {10 roman " Ω"}} above {{10 roman " Btu"} + {10 roman " cal"} - {10 roman " eV"} + {10 roman " erg"} - {10 roman " GeV"} + {10 roman " GJ"}} above {{10 roman " J"} + {10 roman " kcal"} - {10 roman " kJ"} + {10 roman " MeV"} - {10 roman " MJ"} + {10 roman " μJ"} - {10 roman " mJ"} + {10 roman " nJ"}} above {{10 roman " dyn"} + {10 roman " kN"} - {10 roman " MN"} + {10 roman " μN"} - {10 roman " mN"} + {10 roman " N"} - {10 roman " ozf"} + {10 roman " lbf"}} above {{10 roman " EHz"} + {10 roman " GHz"} - {10 roman " Hz"} + {10 roman " kHz"} - {10 roman " MHz"} + {10 roman " PHz"} - {10 roman " THz"}} above {{10 roman " fc"} + {10 roman " lx"} - {10 roman " phot"}} above {{10 roman " Å"} + {10 roman " am"} - {10 roman " cm"} + {10 roman " dm"} - {10 roman " fm"} + {10 roman " ft"} - {10 roman " in"}} above {{10 roman " km"} + {10 roman " m"} - {10 roman " μm"} + {10 roman " mi"} - {10 roman " mm"} + {10 roman " nm"} - {10 roman " pm"}} above {10 roman " sb"} above {10 roman " lm"} above {10 roman " cd"} above {{10 roman " Mx"} + {10 roman " μWb"} - {10 roman " mWb"} + {10 roman " nWb"} - {10 roman " Wb"}} above {{10 roman " G"} + {10 roman " μT"} - {10 roman " mT"} + {10 roman " nT"} - {10 roman " pT"} + {10 roman " T"}} above {{10 roman " H"} + {10 roman " μH"} - {10 roman " mH"}} above {{10 roman " u"} + {10 roman " cg"} - {10 roman " dg"} + {10 roman " g"} - {10 roman " kg"} + {10 roman " μg"} - {10 roman " mg"} + {10 roman " lb"} - {10 roman " slug"}} above {{10 roman " °"} + {10 roman " μrad"} - {10 roman " mrad"} + {10 {fwd 0} sup {roman "′"}} - {10 roman " rad"} + {10 {fwd 0} sup {roman "′′"}}} above {{10 roman " GW"} + {10 roman " hp"} - {10 roman " kW"} + {10 roman " MW"} - {10 roman " μW"} + {10 roman " mW"} - {10 roman " nW"} + {10 roman " W"}} above {{10 roman " atm"} + {10 roman " bar"} - {10 roman " kbar"} + {10 roman " kPa"} - {10 roman " MPa"} + {10 roman " μPa"} - {10 roman " mbar"} + {10 roman " mmHg"} - {10 roman " Pa"} + {10 roman " torr"}} above {10 roman " sr"} above {{10 roman " °C"} + {10 roman " °F"} - {10 roman " K"}} above {{10 roman " as"} + {10 roman " d"} - {10 roman " fs"} + {10 roman " h"} - {10 roman " μs"} + {10 roman " ms"} - {10 roman " min"} + {10 roman " ns"} - {10 roman " ps"} + {10 roman " s"} - {10 roman " y"}} above {{10 {roman " ft"} sup 3} + {10 {roman " in"} sup 3} - {10 {roman " m"} sup 3} + {10 roman " gal"} - {10 roman " l"}} above {{10 roman " ml"} + {10 roman " pint"} - {10 roman " qt"}} above {1 over {x  left ( y right )} = {left ( {{- {int {e sup {{- 1 over 2}  y sup 2}  {sin  y}  {\[u2146] y}}}} + C sub 1} right )  e sup {1 over 2  y sup 2}}} above {{{\[u2145] sub x y} - y} = {sin  x}} above {left ( 1 over 2 right )  left ( 1 over 2 right )  left ( 1 over 2 right )} above {left [ 1 over 2 right ]  left ( 1 over 2 right )  left { 1 over 2 right }} above {left 〈 1 over 2 right 〉  left ⌊ 1 over 2 right ⌋  left ⌈ 1 over 2 right ⌉} above {left "" "↑" 1 over 2 "↑" right ""  left "" "↓" 1 over 2 "↓" right ""  left "" "↕" 1 over 2 "↕" right ""} above {1 over 2  1 over 2  1 over 2} above {1 over 2  1 over 2  1 over 2} above {1 over 2  1 over 2  1 over 2} above {{- {( {a - b} )}} = {b - a}} above {{2 over 5 + 3 over 7} = {{2 \[u22C5] 7} + {3 \[u22C5] 5}} over 35 = 29 over 35} above {left | a right | = left { matrix{ ccol{ a above {- a} } ccol{ {roman "if"} above {roman "if"} } ccol{ {a >= 0} above {a < 0} }@@ -7706,7 +7706,7 @@ ccol{ 4 above 3 } }}} } }}}} above {{y  left ( x right )} = {{x  e sup x} - e sup x + 2} over {e sup x} = {x - 1 + 2 over {e sup x}}} above {matrix{-rcol{ {{{\[u2145] sub {x \[u200B] x} y} - y} = 0} above {{y  {( 0 )}} = 1} above {{y sup prime  left ( 0 right )} = 0} }+rcol{ {{{\[u2145] sub {x \[u200B] x} y} - y} = 0} above {{y  {( 0 )}} = 1} above {{y'  left ( 0 right )} = 0} } }} above {{y  left ( x right )} = {{1 over 3  e sup {{- "" sup 3 sqrt {( {- 1} )}}  x}} + {2 over 3  e sup {1 over 2  "" sup 3 sqrt {( {- 1} )}  x}  {cos  {1 over 2  sqrt 3  "" sup 3 sqrt {left ( {- 1} right )}  x}}}}} above {{y  left ( t right )} = {2  {tan  left ( {{2  t} - {1 over 4  pi}} right )}}} above {{\[u2131]  left ( {matrix{ ccol{ {e sup {2  pi  i  x}} above {2  pi  {Dirac  left ( {x - {2  pi}} right )}} } } , x , s} right )} = left ( matrix{@@ -7731,7 +7731,7 @@ }} above {matrix{ ccol{ {x = z} above {1 = 3} } }} above {matrix{-ccol{ {{A sub 1 = {{N sub 0  {( {lambda ; OMEGA sup prime} )}} - {varphi  {( {lambda ; OMEGA sup prime} )}}}} roman ","} above {{A sub 2 = {{varphi  {( {lambda ; OMEGA sup prime} )}} - {varphi  {( {lambda ; OMEGA} )}}}} roman ","} above {{A sub 3 = {{N}  {( {lambda ; omega} )}}} roman "."} }+ccol{ {{A sub 1 = {{N sub 0  {( {lambda ; OMEGA'} )}} - {varphi  {( {lambda ; OMEGA'} )}}}} roman ","} above {{A sub 2 = {{varphi  {( {lambda ; OMEGA'} )}} - {varphi  {( {lambda ; OMEGA} )}}}} roman ","} above {{A sub 3 = {{N}  {( {lambda ; omega} )}}} roman "."} } }} above {matrix{ ccol{ {sin  theta} above {cos  gamma} } }} above {x = left { matrix{@@ -7787,7 +7787,7 @@ } right ]} - 2} = left [ matrix{ ccol{ 2 above {- 4} } ccol{ {- 2} above 0 }-} right ]} above {x = {lim from {x = 1} {sum from 1 to 2 a}}} above {{int sub a sup b {{f  {( x )}}  {\[u2146] x}}} = {lim from {{\[u2225] P \[u2225]} -> 0} {sum from {i = 1} to n {{f  left ( {x to \[u00AF]} sub i right )}  {DELTA x sub i}}}}} above {{int sub a sup b {{f  {( x )}}  {\[u2146] x}}} = {lim from {n -> inf} {{b - a} over n  {sum from {i = 1} to n {f  left ( {a + {i  {b - a} over n}} right )}}}}} above {{int sub 0 sup 2 {x sup 5  sqrt {x sup 3 + 1}  {\[u2146] x}}} = {int sub 1 sup 3 {2 over 3  u  {sqrt {left ( u sup 2 right )}} over {{left ( {u sup 2 - 1} right )} sup {2 over 3}}  left ( {{u sup 2  {left ( {u sup 2 - 1} right )} sup {2 over 3}} - {left ( {u sup 2 - 1} right )} sup {2 over 3}} right )  {\[u2146] u}}}} above {left ∫ {{f  {( {g  {( x )}} )}}  {g sup prime  {( x )}}  {\[u2146] x}} right "" = left ∫ {{f  {( u )}}  {\[u2146] u}} right ""} above {x = {2  {sum from {n = 1} to 100 {n  {( {n - 1} )}}}}} above {{lim from {x -> 0} {sin  left ( 1 over x right )}} = {{- 1} .. 1}} above {{h  {( {i , j} )}} = {{{( {2 - j} )}  {g  {( i )}}} + {{( {j - 1} )}  {f  {( {g  {( i )}} )}}}}} above {\[u25B3] : left "" left [ {0 , 1} right ] "→" left [ {0 , 1} right ] right ""} above {{0 \[u25BD] x} = x} above {{x \[u25B3] y} = {h sup {- 1}  left ( {{h  left ( x right )}  {h  left ( y right )}} right )}} above {{x \[u25B3] y} = {f sup {- 1}  left ( {max left { {{{f  left ( x right )} + {f  left ( y right )} - 1} , 0} right }} right )}} above {{x \[u25BD] y} = {eta  left ( {{eta  left ( x right )} \[u25B3] {eta  left ( y right )}} right )}} above {{x  {\[u25B3] sub 0 y}} = left { matrix{+} right ]} above {x = {lim from {x = 1} {sum from 1 to 2 a}}} above {{int sub a sup b {{f  {( x )}}  {\[u2146] x}}} = {lim from {{\[u2225] P \[u2225]} -> 0} {sum from {i = 1} to n {{f  left ( {x to \[u00AF]} sub i right )}  {DELTA x sub i}}}}} above {{int sub a sup b {{f  {( x )}}  {\[u2146] x}}} = {lim from {n -> inf} {{b - a} over n  {sum from {i = 1} to n {f  left ( {a + {i  {b - a} over n}} right )}}}}} above {{int sub 0 sup 2 {x sup 5  sqrt {x sup 3 + 1}  {\[u2146] x}}} = {int sub 1 sup 3 {2 over 3  u  {sqrt {left ( u sup 2 right )}} over {{left ( {u sup 2 - 1} right )} sup {2 over 3}}  left ( {{u sup 2  {left ( {u sup 2 - 1} right )} sup {2 over 3}} - {left ( {u sup 2 - 1} right )} sup {2 over 3}} right )  {\[u2146] u}}}} above {left ∫ {{f  {( {g  {( x )}} )}}  {g'  {( x )}}  {\[u2146] x}} right "" = left ∫ {{f  {( u )}}  {\[u2146] u}} right ""} above {x = {2  {sum from {n = 1} to 100 {n  {( {n - 1} )}}}}} above {{lim from {x -> 0} {sin  left ( 1 over x right )}} = {{- 1} .. 1}} above {{h  {( {i , j} )}} = {{{( {2 - j} )}  {g  {( i )}}} + {{( {j - 1} )}  {f  {( {g  {( i )}} )}}}}} above {\[u25B3] : left "" left [ {0 , 1} right ] "→" left [ {0 , 1} right ] right ""} above {{0 \[u25BD] x} = x} above {{x \[u25B3] y} = {h sup {- 1}  left ( {{h  left ( x right )}  {h  left ( y right )}} right )}} above {{x \[u25B3] y} = {f sup {- 1}  left ( {max left { {{{f  left ( x right )} + {f  left ( y right )} - 1} , 0} right }} right )}} above {{x \[u25BD] y} = {eta  left ( {{eta  left ( x right )} \[u25B3] {eta  left ( y right )}} right )}} above {{x  {\[u25B3] sub 0 y}} = left { matrix{ ccol{ {x \[u2227] y} above 0 } ccol{ {roman "if"} above {roman "if"} } ccol{ {x \[u2228] {y = 1}} above {x \[u2228] {y < 1}} }
test/writer/eqn/moAprime16.test view
@@ -6,4 +6,4 @@ , EDelimited "(" ")" [ Right (EIdentifier "x") ] ] >>> eqn-f sup ' left ( x right ) = f sup prime left ( x right )+f sup ' left ( x right ) = f' left ( x right )
test/writer/eqn/primes1.test view
@@ -37,4 +37,4 @@ , ESuper (ESymbol Accent "'") (ESymbol Accent "'") ] >>> eqn-x sup 2 + 2 sup 2 + x sup prime + x sup ' + x sup "''" + x prime + {x sup '} sup ' + {x sup '} sup 2 + x sup {' + '} + {x sup '} sup ' + x sup {' sup '} + ' sup ' + ' sup '+x sup 2 + 2 sup 2 + x' + x sup ' + x sup "''" + x prime + {x sup '} sup ' + {x sup '} sup 2 + x sup {' + '} + {x sup '} sup ' + x sup {' sup '} + ' sup ' + ' sup '
test/writer/eqn/primes2.test view
@@ -27,4 +27,4 @@ , ESuper (EIdentifier "H") (ESymbol Accent "\8279") ] >>> eqn-H sup " H sup ' H sup * H sup ` H sup \[u00AA] H sup \[u00B0] H sup \[u00B2] H sup \[u00B3] H sup \[u00B4] H sup \[u00B9] H sup \[u00BA] H sup \[u2018] H sup \[u2019] H sup \[u201A] H sup \[u201B] H sup \[u201C] H sup \[u201D] H sup \[u201E] H sup \[u201F] H sup prime H sup \[u2033] H sup \[u2034] H sup \[u2035] H sup \[u2036] H sup \[u2037] H sup \[u2057]+H sup " H sup ' H sup * H sup ` H sup \[u00AA] H sup \[u00B0] H sup \[u00B2] H sup \[u00B3] H sup \[u00B4] H sup \[u00B9] H sup \[u00BA] H sup \[u2018] H sup \[u2019] H sup \[u201A] H sup \[u201B] H sup \[u201C] H sup \[u201D] H sup \[u201E] H sup \[u201F] H' H sup \[u2033] H sup \[u2034] H sup \[u2035] H sup \[u2036] H sup \[u2037] H sup \[u2057]
test/writer/mml/00000_C0_Controls_and_Basic_Latin.test view
@@ -224,7 +224,8 @@         <mi>*</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo></mo>+        <mi></mi>+        <mo>&#8289;</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>0</mi>
test/writer/mml/00370_Greek_and_Coptic.test view
@@ -248,7 +248,7 @@         <mi>ΐ</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Π</mo>+        <mo mathvariant="normal">Π</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>ΰ</mi>@@ -277,10 +277,10 @@         <mi>@</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Α</mo>+        <mo mathvariant="normal">Α</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ρ</mo>+        <mo mathvariant="normal">Ρ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mo>α</mo>@@ -309,7 +309,7 @@         <mi>@</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Β</mo>+        <mo mathvariant="normal">Β</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>@</mi>@@ -341,10 +341,10 @@         <mi>@</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Γ</mo>+        <mo mathvariant="normal">Γ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Σ</mo>+        <mo mathvariant="normal">Σ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mo>γ</mo>@@ -373,10 +373,10 @@         <mi>΄</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Δ</mo>+        <mo mathvariant="normal">Δ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Τ</mo>+        <mo mathvariant="normal">Τ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mo>δ</mo>@@ -405,10 +405,10 @@         <mi>΅</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ε</mo>+        <mo mathvariant="normal">Ε</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Υ</mo>+        <mo mathvariant="normal">Υ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mo>ε</mo>@@ -437,10 +437,10 @@         <mi>Ά</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ζ</mo>+        <mo mathvariant="normal">Ζ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Φ</mo>+        <mo mathvariant="normal">Φ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mo>ζ</mo>@@ -469,10 +469,10 @@         <mi>·</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Η</mo>+        <mo mathvariant="normal">Η</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Χ</mo>+        <mo mathvariant="normal">Χ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mo>η</mo>@@ -501,10 +501,10 @@         <mi>Έ</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Θ</mo>+        <mo mathvariant="normal">Θ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ψ</mo>+        <mo mathvariant="normal">Ψ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mo>θ</mo>@@ -533,10 +533,10 @@         <mi>Ή</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ι</mo>+        <mo mathvariant="normal">Ι</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ω</mo>+        <mo mathvariant="normal">Ω</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mo>ι</mo>@@ -565,7 +565,7 @@         <mi>Ί</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Κ</mo>+        <mo mathvariant="normal">Κ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>Ϊ</mi>@@ -597,7 +597,7 @@         <mi>@</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Λ</mo>+        <mo mathvariant="normal">Λ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>Ϋ</mi>@@ -629,7 +629,7 @@         <mi>Ό</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Μ</mo>+        <mo mathvariant="normal">Μ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>ά</mi>@@ -661,7 +661,7 @@         <mi>@</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ν</mo>+        <mo mathvariant="normal">Ν</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>έ</mi>@@ -693,7 +693,7 @@         <mi>Ύ</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ξ</mo>+        <mo mathvariant="normal">Ξ</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>ή</mi>@@ -725,7 +725,7 @@         <mi>Ώ</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ο</mo>+        <mo mathvariant="normal">Ο</mo>       </mtd>       <mtd columnalign="center" style="text-align: center">         <mi>ί</mi>
test/writer/mml/02000_General_Punctuation.test view
@@ -241,7 +241,7 @@         <mi>⁑</mi>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mi>&#8289;</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/08.test view
@@ -73,7 +73,8 @@       <mi>n</mi>     </msup>     <mo>,</mo>-    <mo>arg</mo>+    <mi>arg</mi>+    <mo>&#8289;</mo>     <mrow>       <mo stretchy="true" form="prefix">(</mo>       <msup>@@ -84,7 +85,8 @@     </mrow>     <mo>=</mo>     <mi>n</mi>-    <mo>arg</mo>+    <mi>arg</mi>+    <mo>&#8289;</mo>     <mrow>       <mo stretchy="true" form="prefix">(</mo>       <mi>z</mi>
test/writer/mml/09.test view
@@ -19,7 +19,8 @@ <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">   <mrow>     <munder>-      <mo>lim</mo>+      <mi>lim</mi>+      <mo>&#8289;</mo>       <mrow>         <mi>z</mi>         <mo>→</mo>
test/writer/mml/10.test view
@@ -76,7 +76,8 @@     </msubsup>     <mfrac>       <mrow>-        <mo>sin</mo>+        <mi>sin</mi>+        <mo>&#8289;</mo>         <mrow>           <mo stretchy="true" form="prefix">(</mo>           <mi>κ</mi>
test/writer/mml/14.test view
@@ -12,9 +12,11 @@       <mi>b</mi>     </mfrac>     <mspace width="0.222em" />-    <mfrac displaystyle="false">-      <mi>a</mi>-      <mi>b</mi>-    </mfrac>+    <mstyle displaystyle="false">+      <mfrac>+        <mi>a</mi>+        <mi>b</mi>+      </mfrac>+    </mstyle>   </mrow> </math>
test/writer/mml/19.test view
@@ -88,40 +88,44 @@       <mtable>         <mtr>           <mtd columnalign="center" style="text-align: center">-            <mfrac displaystyle="true">-              <mrow>-                <mi>∂</mi>-                <msub>-                  <mi>x</mi>-                  <mn>1</mn>-                </msub>-              </mrow>-              <mrow>-                <mi>∂</mi>-                <msub>-                  <mi>y</mi>-                  <mn>1</mn>-                </msub>-              </mrow>-            </mfrac>+            <mstyle displaystyle="true">+              <mfrac>+                <mrow>+                  <mi>∂</mi>+                  <msub>+                    <mi>x</mi>+                    <mn>1</mn>+                  </msub>+                </mrow>+                <mrow>+                  <mi>∂</mi>+                  <msub>+                    <mi>y</mi>+                    <mn>1</mn>+                  </msub>+                </mrow>+              </mfrac>+            </mstyle>           </mtd>           <mtd columnalign="center" style="text-align: center">-            <mfrac displaystyle="true">-              <mrow>-                <mi>∂</mi>-                <msub>-                  <mi>x</mi>-                  <mn>2</mn>-                </msub>-              </mrow>-              <mrow>-                <mi>∂</mi>-                <msub>-                  <mi>y</mi>-                  <mn>1</mn>-                </msub>-              </mrow>-            </mfrac>+            <mstyle displaystyle="true">+              <mfrac>+                <mrow>+                  <mi>∂</mi>+                  <msub>+                    <mi>x</mi>+                    <mn>2</mn>+                  </msub>+                </mrow>+                <mrow>+                  <mi>∂</mi>+                  <msub>+                    <mi>y</mi>+                    <mn>1</mn>+                  </msub>+                </mrow>+              </mfrac>+            </mstyle>           </mtd>         </mtr>         <mtr>@@ -131,40 +135,44 @@         </mtr>         <mtr>           <mtd columnalign="center" style="text-align: center">-            <mfrac displaystyle="true">-              <mrow>-                <mi>∂</mi>-                <msub>-                  <mi>x</mi>-                  <mn>1</mn>-                </msub>-              </mrow>-              <mrow>-                <mi>∂</mi>-                <msub>-                  <mi>y</mi>-                  <mn>2</mn>-                </msub>-              </mrow>-            </mfrac>+            <mstyle displaystyle="true">+              <mfrac>+                <mrow>+                  <mi>∂</mi>+                  <msub>+                    <mi>x</mi>+                    <mn>1</mn>+                  </msub>+                </mrow>+                <mrow>+                  <mi>∂</mi>+                  <msub>+                    <mi>y</mi>+                    <mn>2</mn>+                  </msub>+                </mrow>+              </mfrac>+            </mstyle>           </mtd>           <mtd columnalign="center" style="text-align: center">-            <mfrac displaystyle="true">-              <mrow>-                <mi>∂</mi>-                <msub>-                  <mi>x</mi>-                  <mn>2</mn>-                </msub>-              </mrow>-              <mrow>-                <mi>∂</mi>-                <msub>-                  <mi>y</mi>-                  <mn>2</mn>-                </msub>-              </mrow>-            </mfrac>+            <mstyle displaystyle="true">+              <mfrac>+                <mrow>+                  <mi>∂</mi>+                  <msub>+                    <mi>x</mi>+                    <mn>2</mn>+                  </msub>+                </mrow>+                <mrow>+                  <mi>∂</mi>+                  <msub>+                    <mi>y</mi>+                    <mn>2</mn>+                  </msub>+                </mrow>+              </mfrac>+            </mstyle>           </mtd>         </mtr>       </mtable>
test/writer/mml/a.test view
@@ -138,7 +138,8 @@         <mtext mathvariant="normal">acE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>∾̳</mo>+        <mi>∾̳</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -202,7 +203,7 @@         <mtext mathvariant="normal">af</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mi>&#8289;</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -562,7 +563,7 @@         <mtext mathvariant="normal">ApplyFunction</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mi>&#8289;</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/b.test view
@@ -577,7 +577,8 @@         <mtext mathvariant="normal">bne</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>=⃥</mo>+        <mi>=⃥</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -585,7 +586,8 @@         <mtext mathvariant="normal">bnequiv</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≡⃥</mo>+        <mi>≡⃥</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/c.test view
@@ -237,7 +237,8 @@         <mtext mathvariant="normal">caps</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>∩︀</mo>+        <mi>∩︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1037,7 +1038,8 @@         <mtext mathvariant="normal">cups</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>∪︀</mo>+        <mi>∪︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/complex3.test view
@@ -7724,7 +7724,7 @@                 <mi>f</mi>                 <mi>′</mi>               </msup>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="false" form="prefix">(</mo>                 <mi>x</mi>@@ -7733,10 +7733,10 @@             </mrow>             <mo>+</mo>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>-              <mo>cos</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>+              <mi>cos</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>           </mrow>@@ -7752,7 +7752,7 @@           <mrow>             <mrow>               <mi>f</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="false" form="prefix">(</mo>                 <mi>z</mi>@@ -7898,7 +7898,8 @@         <mrow>           <mrow>             <munder>-              <mo>lim</mo>+              <mi>lim</mi>+              <mo>&#8289;</mo>               <mrow>                 <mi>n</mi>                 <mo>→</mo>@@ -7919,7 +7920,7 @@                     <mrow>                       <mrow>                         <mi>f</mi>-                        <mi>&#8289;</mi>+                        <mo>&#8289;</mo>                         <mrow>                           <mo stretchy="false" form="prefix">(</mo>                           <mi>z</mi>@@ -7976,7 +7977,7 @@             <mo>≥</mo>             <mrow>               <mi>N</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="false" form="prefix">(</mo>                 <mi>ε</mi>@@ -7991,7 +7992,7 @@               <mrow>                 <mrow>                   <mi>f</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="false" form="prefix">(</mo>                     <mi>z</mi>@@ -9093,7 +9094,7 @@             <mn>1</mn>             <mrow>               <mi>x</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">(</mo>                 <mi>y</mi>@@ -9130,8 +9131,8 @@                       </msup>                       <mi>&#8290;</mi>                       <mrow>-                        <mo>sin</mo>-                        <mi>&#8289;</mi>+                        <mi>sin</mi>+                        <mo>&#8289;</mo>                         <mi>y</mi>                       </mrow>                       <mi>&#8290;</mi>@@ -9186,8 +9187,8 @@           </mrow>           <mo>=</mo>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>x</mi>           </mrow>         </mrow>@@ -10078,7 +10079,7 @@     <mtr>       <mtd columnalign="center" style="text-align: center">         <msubsup>-          <mi>Γ</mi>+          <mi mathvariant="normal">Γ</mi>           <msubsup>             <mn>1</mn>             <msup>@@ -10186,7 +10187,7 @@         <mrow>           <mrow>             <mi>y</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mi>x</mi>@@ -10266,7 +10267,7 @@               <mrow>                 <mrow>                   <mi>y</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="false" form="prefix">(</mo>                     <mn>0</mn>@@ -10286,7 +10287,7 @@                     <mi>y</mi>                     <mi>′</mi>                   </msup>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="true" form="prefix">(</mo>                     <mn>0</mn>@@ -10307,7 +10308,7 @@         <mrow>           <mrow>             <mi>y</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mi>x</mi>@@ -10376,8 +10377,8 @@               </msup>               <mi>&#8290;</mi>               <mrow>-                <mo>cos</mo>-                <mi>&#8289;</mi>+                <mi>cos</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mfrac>                     <mn>1</mn>@@ -10414,7 +10415,7 @@         <mrow>           <mrow>             <mi>y</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mi>t</mi>@@ -10426,8 +10427,8 @@             <mn>2</mn>             <mi>&#8290;</mi>             <mrow>-              <mo>tan</mo>-              <mi>&#8289;</mi>+              <mi>tan</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">(</mo>                 <mrow>@@ -10459,7 +10460,7 @@         <mrow>           <mrow>             <mi>ℱ</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mrow>@@ -10489,7 +10490,7 @@                         <mi>&#8290;</mi>                         <mrow>                           <mi>Dirac</mi>-                          <mi>&#8289;</mi>+                          <mo>&#8289;</mo>                           <mrow>                             <mo stretchy="true" form="prefix">(</mo>                             <mrow>@@ -10529,7 +10530,7 @@                     <mi>&#8290;</mi>                     <mrow>                       <mi>Dirac</mi>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="true" form="prefix">(</mo>                         <mrow>@@ -10809,7 +10810,7 @@               <mi>K</mi>               <mi>v</mi>             </msub>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mi>z</mi>@@ -10822,7 +10823,7 @@               <mi>BesselK</mi>               <mi>v</mi>             </msub>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mi>z</mi>@@ -10914,7 +10915,7 @@                 </msup>                 <mrow>                   <mi>u</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="false" form="prefix">(</mo>                     <mrow>@@ -10943,7 +10944,7 @@                 </msup>                 <mrow>                   <mi>u</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="false" form="prefix">(</mo>                     <mrow>@@ -10975,7 +10976,7 @@         <mrow>           <mrow>             <mi>y</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mrow>@@ -11231,14 +11232,14 @@                         <mi>N</mi>                         <mn>0</mn>                       </msub>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="false" form="prefix">(</mo>                         <mrow>                           <mi>λ</mi>                           <mo>;</mo>                           <msup>-                            <mi>Ω</mi>+                            <mi mathvariant="normal">Ω</mi>                             <mi>′</mi>                           </msup>                         </mrow>@@ -11248,14 +11249,14 @@                     <mo>−</mo>                     <mrow>                       <mi>φ</mi>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="false" form="prefix">(</mo>                         <mrow>                           <mi>λ</mi>                           <mo>;</mo>                           <msup>-                            <mi>Ω</mi>+                            <mi mathvariant="normal">Ω</mi>                             <mi>′</mi>                           </msup>                         </mrow>@@ -11280,14 +11281,14 @@                   <mrow>                     <mrow>                       <mi>φ</mi>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="false" form="prefix">(</mo>                         <mrow>                           <mi>λ</mi>                           <mo>;</mo>                           <msup>-                            <mi>Ω</mi>+                            <mi mathvariant="normal">Ω</mi>                             <mi>′</mi>                           </msup>                         </mrow>@@ -11297,13 +11298,13 @@                     <mo>−</mo>                     <mrow>                       <mi>φ</mi>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="false" form="prefix">(</mo>                         <mrow>                           <mi>λ</mi>                           <mo>;</mo>-                          <mi>Ω</mi>+                          <mi mathvariant="normal">Ω</mi>                         </mrow>                         <mo stretchy="false" form="postfix">)</mo>                       </mrow>@@ -11325,7 +11326,7 @@                   <mo>=</mo>                   <mrow>                     <mi>𝒩</mi>-                    <mi>&#8289;</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mo stretchy="false" form="prefix">(</mo>                       <mrow>@@ -11351,8 +11352,8 @@           <mtr>             <mtd columnalign="center" style="text-align: center">               <mrow>-                <mo>sin</mo>-                <mi>&#8289;</mi>+                <mi>sin</mi>+                <mo>&#8289;</mo>                 <mi>θ</mi>               </mrow>             </mtd>@@ -11360,8 +11361,8 @@           <mtr>             <mtd columnalign="center" style="text-align: center">               <mrow>-                <mo>cos</mo>-                <mi>&#8289;</mi>+                <mi>cos</mi>+                <mo>&#8289;</mo>                 <mi>γ</mi>               </mrow>             </mtd>@@ -11493,7 +11494,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mrow>-            <mo>∇×</mo>+            <mi>∇×</mi>+            <mo>&#8289;</mo>             <mi>F</mi>           </mrow>           <mo>=</mo>@@ -11505,7 +11507,8 @@     <mtr>       <mtd columnalign="center" style="text-align: center">         <mrow>-          <mo>∇·</mo>+          <mi>∇·</mi>+          <mo>&#8289;</mo>           <mi>F</mi>         </mrow>       </mtd>@@ -11515,7 +11518,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mrow>-            <mo>∇·∇</mo>+            <mi>∇·∇</mi>+            <mo>&#8289;</mo>             <mi>F</mi>           </mrow>           <mo>=</mo>@@ -11540,7 +11544,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mrow>-            <mo>∇×</mo>+            <mi>∇×</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mrow>@@ -11604,7 +11609,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mrow>-            <mo>∇×</mo>+            <mi>∇×</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mrow>@@ -11692,7 +11698,7 @@             <mo>+</mo>             <mrow>               <mi>f</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="false" form="prefix">(</mo>                 <mi>𝐱</mi>@@ -11714,7 +11720,7 @@           <mrow>             <mi>𝑇</mi>             <mi>&#8290;</mi>-            <mi mathvariant="italic">h</mi>+            <mi>ℎ</mi>             <mi>&#8290;</mi>             <mi>𝑒</mi>             <mi>&#8290;</mi>@@ -11820,7 +11826,7 @@                   </msub>                 </mrow>               </mfrac>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">(</mo>                 <mrow>@@ -11859,7 +11865,7 @@                   </msub>                 </mrow>               </mfrac>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">(</mo>                 <mrow>@@ -11904,7 +11910,7 @@                   </msub>                 </mrow>               </mfrac>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">(</mo>                 <mrow>@@ -12019,7 +12025,7 @@                   <mi>&#8290;</mi>                   <mrow>                     <mi>f</mi>-                    <mi>&#8289;</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mo stretchy="true" form="prefix">(</mo>                       <mrow>@@ -12039,7 +12045,7 @@                     <mi>∇</mi>                     <mrow>                       <mi>f</mi>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="true" form="prefix">(</mo>                         <mrow>@@ -12076,7 +12082,7 @@                           <mi>x</mi>                         </mrow>                       </mfrac>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="true" form="prefix">(</mo>                         <mrow>@@ -12108,7 +12114,7 @@                           <mi>y</mi>                         </mrow>                       </mfrac>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="true" form="prefix">(</mo>                         <mrow>@@ -12140,7 +12146,7 @@                           <mi>z</mi>                         </mrow>                       </mfrac>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="true" form="prefix">(</mo>                         <mrow>@@ -12192,8 +12198,8 @@                 <mrow>                   <mo stretchy="true" form="prefix">(</mo>                   <mrow>-                    <mo>arccos</mo>-                    <mi>&#8289;</mi>+                    <mi>arccos</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mfrac>                         <mn>1</mn>@@ -12243,8 +12249,8 @@                 <mrow>                   <mo stretchy="true" form="prefix">(</mo>                   <mrow>-                    <mo>arccos</mo>-                    <mi>&#8289;</mi>+                    <mi>arccos</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mfrac>                         <mn>1</mn>@@ -12315,7 +12321,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mrow>-            <mo>det</mo>+            <mi>det</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mtable>@@ -12394,7 +12401,7 @@           <mrow>             <mrow>               <mi>A</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">(</mo>                 <mi>θ</mi>@@ -12404,7 +12411,7 @@             <mi>&#8290;</mi>             <mrow>               <mi>A</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">(</mo>                 <mrow>@@ -12423,8 +12430,8 @@                 <mtr>                   <mtd columnalign="center" style="text-align: center">                     <mrow>-                      <mo>cos</mo>-                      <mi>&#8289;</mi>+                      <mi>cos</mi>+                      <mo>&#8289;</mo>                       <mi>θ</mi>                     </mrow>                   </mtd>@@ -12432,8 +12439,8 @@                     <mrow>                       <mo>−</mo>                       <mrow>-                        <mo>sin</mo>-                        <mi>&#8289;</mi>+                        <mi>sin</mi>+                        <mo>&#8289;</mo>                         <mi>θ</mi>                       </mrow>                     </mrow>@@ -12442,15 +12449,15 @@                 <mtr>                   <mtd columnalign="center" style="text-align: center">                     <mrow>-                      <mo>sin</mo>-                      <mi>&#8289;</mi>+                      <mi>sin</mi>+                      <mo>&#8289;</mo>                       <mi>θ</mi>                     </mrow>                   </mtd>                   <mtd columnalign="center" style="text-align: center">                     <mrow>-                      <mo>cos</mo>-                      <mi>&#8289;</mi>+                      <mi>cos</mi>+                      <mo>&#8289;</mo>                       <mi>θ</mi>                     </mrow>                   </mtd>@@ -12465,15 +12472,15 @@                 <mtr>                   <mtd columnalign="center" style="text-align: center">                     <mrow>-                      <mo>cos</mo>-                      <mi>&#8289;</mi>+                      <mi>cos</mi>+                      <mo>&#8289;</mo>                       <mi>θ</mi>                     </mrow>                   </mtd>                   <mtd columnalign="center" style="text-align: center">                     <mrow>-                      <mo>sin</mo>-                      <mi>&#8289;</mi>+                      <mi>sin</mi>+                      <mo>&#8289;</mo>                       <mi>θ</mi>                     </mrow>                   </mtd>@@ -12483,16 +12490,16 @@                     <mrow>                       <mo>−</mo>                       <mrow>-                        <mo>sin</mo>-                        <mi>&#8289;</mi>+                        <mi>sin</mi>+                        <mo>&#8289;</mo>                         <mi>θ</mi>                       </mrow>                     </mrow>                   </mtd>                   <mtd columnalign="center" style="text-align: center">                     <mrow>-                      <mo>cos</mo>-                      <mi>&#8289;</mi>+                      <mi>cos</mi>+                      <mo>&#8289;</mo>                       <mi>θ</mi>                     </mrow>                   </mtd>@@ -12510,7 +12517,7 @@         <mrow>           <mrow>             <mi>J</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mi>A</mi>@@ -12531,7 +12538,7 @@                         <mn>1</mn>                       </msub>                     </msub>-                    <mi>&#8289;</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mo stretchy="true" form="prefix">(</mo>                       <msub>@@ -12565,7 +12572,7 @@                         <mn>2</mn>                       </msub>                     </msub>-                    <mi>&#8289;</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mo stretchy="true" form="prefix">(</mo>                       <msub>@@ -12616,7 +12623,7 @@                         <mi>k</mi>                       </msub>                     </msub>-                    <mi>&#8289;</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mo stretchy="true" form="prefix">(</mo>                       <msub>@@ -12639,7 +12646,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mrow>-            <mo>det</mo>+            <mi>det</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mtable>@@ -12796,7 +12804,8 @@           <mo>=</mo>           <mrow>             <munder>-              <mo>max</mo>+              <mi>max</mi>+              <mo>&#8289;</mo>               <mrow>                 <mi>x</mi>                 <mo>≠</mo>@@ -13034,7 +13043,7 @@         <mrow>           <mrow>             <mi>f</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mrow>@@ -13159,7 +13168,8 @@           <mo>=</mo>           <mrow>             <munder>-              <mo>lim</mo>+              <mi>lim</mi>+              <mo>&#8289;</mo>               <mrow>                 <mi>x</mi>                 <mo>=</mo>@@ -13191,7 +13201,7 @@             <mrow>               <mrow>                 <mi>f</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mi>x</mi>@@ -13208,7 +13218,8 @@           <mo>=</mo>           <mrow>             <munder>-              <mo>lim</mo>+              <mi>lim</mi>+              <mo>&#8289;</mo>               <mrow>                 <mrow>                   <mo>∥</mo>@@ -13232,7 +13243,7 @@               <mrow>                 <mrow>                   <mi>f</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="true" form="prefix">(</mo>                     <msub>@@ -13247,7 +13258,7 @@                 </mrow>                 <mi>&#8290;</mi>                 <mrow>-                  <mo>Δ</mo>+                  <mo mathvariant="normal">Δ</mo>                   <msub>                     <mi>x</mi>                     <mi>i</mi>@@ -13272,7 +13283,7 @@             <mrow>               <mrow>                 <mi>f</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mi>x</mi>@@ -13289,7 +13300,8 @@           <mo>=</mo>           <mrow>             <munder>-              <mo>lim</mo>+              <mi>lim</mi>+              <mo>&#8289;</mo>               <mrow>                 <mi>n</mi>                 <mo>→</mo>@@ -13318,7 +13330,7 @@                 </munderover>                 <mrow>                   <mi>f</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="true" form="prefix">(</mo>                     <mrow>@@ -13494,12 +13506,12 @@             <mrow>               <mrow>                 <mi>f</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mrow>                     <mi>g</mi>-                    <mi>&#8289;</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mo stretchy="false" form="prefix">(</mo>                       <mi>x</mi>@@ -13515,7 +13527,7 @@                   <mi>g</mi>                   <mi>′</mi>                 </msup>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mi>x</mi>@@ -13535,7 +13547,7 @@             <mrow>               <mrow>                 <mi>f</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mi>u</mi>@@ -13595,7 +13607,8 @@         <mrow>           <mrow>             <munder>-              <mo>lim</mo>+              <mi>lim</mi>+              <mo>&#8289;</mo>               <mrow>                 <mi>x</mi>                 <mo>→</mo>@@ -13603,8 +13616,8 @@               </mrow>             </munder>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">(</mo>                 <mfrac>@@ -13633,7 +13646,7 @@         <mrow>           <mrow>             <mi>h</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mrow>@@ -13659,7 +13672,7 @@               <mi>&#8290;</mi>               <mrow>                 <mi>g</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mi>i</mi>@@ -13681,12 +13694,12 @@               <mi>&#8290;</mi>               <mrow>                 <mi>f</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mrow>                     <mi>g</mi>-                    <mi>&#8289;</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mo stretchy="false" form="prefix">(</mo>                       <mi>i</mi>@@ -13769,7 +13782,7 @@               <mrow>                 <mrow>                   <mi>h</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="true" form="prefix">(</mo>                     <mi>x</mi>@@ -13779,7 +13792,7 @@                 <mi>&#8290;</mi>                 <mrow>                   <mi>h</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="true" form="prefix">(</mo>                     <mi>y</mi>@@ -13815,14 +13828,15 @@             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mrow>-                <mo>max</mo>+                <mi>max</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="true" form="prefix">{</mo>                   <mrow>                     <mrow>                       <mrow>                         <mi>f</mi>-                        <mi>&#8289;</mi>+                        <mo>&#8289;</mo>                         <mrow>                           <mo stretchy="true" form="prefix">(</mo>                           <mi>x</mi>@@ -13832,7 +13846,7 @@                       <mo>+</mo>                       <mrow>                         <mi>f</mi>-                        <mi>&#8289;</mi>+                        <mo>&#8289;</mo>                         <mrow>                           <mo stretchy="true" form="prefix">(</mo>                           <mi>y</mi>@@ -13866,13 +13880,13 @@           <mo>=</mo>           <mrow>             <mi>η</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mrow>                 <mrow>                   <mi>η</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="true" form="prefix">(</mo>                     <mi>x</mi>@@ -13882,7 +13896,7 @@                 <mo>△</mo>                 <mrow>                   <mi>η</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="true" form="prefix">(</mo>                     <mi>y</mi>@@ -13968,7 +13982,8 @@         <mrow>           <mrow>             <munder>-              <mo>lim</mo>+              <mi>lim</mi>+              <mo>&#8289;</mo>               <mrow>                 <mi>a</mi>                 <mo>→</mo>@@ -13980,10 +13995,11 @@             </munder>             <mrow>               <msub>-                <mo>log</mo>+                <mi>log</mi>+                <mo>&#8289;</mo>                 <mi>a</mi>               </msub>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">[</mo>                 <mrow>@@ -14031,7 +14047,8 @@           <mo>=</mo>           <mrow>             <munder>-              <mo>lim</mo>+              <mi>lim</mi>+              <mo>&#8289;</mo>               <mrow>                 <mi>a</mi>                 <mo>→</mo>@@ -14043,10 +14060,11 @@             </munder>             <mrow>               <msub>-                <mo>log</mo>+                <mi>log</mi>+                <mo>&#8289;</mo>                 <mi>a</mi>               </msub>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">[</mo>                 <mrow>@@ -14106,7 +14124,7 @@         <mrow>           <mrow>             <mi>g</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mi>x</mi>@@ -14115,8 +14133,8 @@           </mrow>           <mo>=</mo>           <mrow>-            <mo>exp</mo>-            <mi>&#8289;</mi>+            <mi>exp</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mrow>@@ -14178,7 +14196,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mrow>-            <mo>Aut</mo>+            <mi>Aut</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mi>𝐈</mi>@@ -14237,7 +14256,7 @@                       <mrow>                         <mrow>                           <mi>f</mi>-                          <mi>&#8289;</mi>+                          <mo>&#8289;</mo>                           <mrow>                             <mo stretchy="true" form="prefix">(</mo>                             <mi>x</mi>@@ -14247,7 +14266,7 @@                         <mo>≤</mo>                         <mrow>                           <mi>f</mi>-                          <mi>&#8289;</mi>+                          <mo>&#8289;</mo>                           <mrow>                             <mo stretchy="true" form="prefix">(</mo>                             <mi>y</mi>@@ -14291,8 +14310,8 @@           <mtext mathvariant="normal">  </mtext>           <mrow>             <mrow>-              <mo>tan</mo>-              <mi>&#8289;</mi>+              <mi>tan</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mo>=</mo>@@ -14338,8 +14357,8 @@                   <mn>2</mn>                   <mo>+</mo>                   <mrow>-                    <mo>sin</mo>-                    <mi>&#8289;</mi>+                    <mi>sin</mi>+                    <mo>&#8289;</mo>                     <mi>t</mi>                   </mrow>                 </mrow>@@ -14349,8 +14368,8 @@               <mn>10</mn>               <mi>&#8290;</mi>               <mrow>-                <mo>cos</mo>-                <mi>&#8289;</mi>+                <mi>cos</mi>+                <mo>&#8289;</mo>                 <mi>t</mi>               </mrow>             </mrow>@@ -14362,8 +14381,8 @@                   <mn>2</mn>                   <mo>+</mo>                   <mrow>-                    <mo>cos</mo>-                    <mi>&#8289;</mi>+                    <mi>cos</mi>+                    <mo>&#8289;</mo>                     <mi>t</mi>                   </mrow>                 </mrow>@@ -14373,8 +14392,8 @@               <mn>10</mn>               <mi>&#8290;</mi>               <mrow>-                <mo>sin</mo>-                <mi>&#8289;</mi>+                <mi>sin</mi>+                <mo>&#8289;</mo>                 <mi>t</mi>               </mrow>             </mrow>@@ -14383,8 +14402,8 @@               <mn>3</mn>               <mi>&#8290;</mi>               <mrow>-                <mo>sin</mo>-                <mi>&#8289;</mi>+                <mi>sin</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mn>3</mn>                   <mi>&#8290;</mi>@@ -14854,7 +14873,7 @@                 <mi>x</mi>               </mrow>             </mfrac>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <msub>@@ -14969,7 +14988,8 @@     <mtr>       <mtd columnalign="center" style="text-align: center">         <mrow>-          <mo>mod</mo>+          <mi>mod</mi>+          <mo>&#8289;</mo>           <mi>a</mi>         </mrow>       </mtd>@@ -14980,7 +15000,8 @@         <mrow>           <mrow>             <mn>5</mn>-            <mo>mod</mo>+            <mi>mod</mi>+            <mo>&#8289;</mo>             <mn>3</mn>           </mrow>           <mo>=</mo>@@ -14995,14 +15016,15 @@           <mrow>             <mrow>               <mi>f</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="false" form="prefix">(</mo>                 <mn>0</mn>                 <mo stretchy="false" form="postfix">)</mo>               </mrow>             </mrow>-            <mo>mod</mo>+            <mi>mod</mi>+            <mo>&#8289;</mo>             <mn>3</mn>           </mrow>           <mo>=</mo>@@ -15031,7 +15053,8 @@           <mrow>             <mo stretchy="true" form="prefix">(</mo>             <mrow>-              <mo>mod</mo>+              <mi>mod</mi>+              <mo>&#8289;</mo>               <mn>13</mn>             </mrow>             <mo stretchy="true" form="postfix">)</mo>@@ -15059,7 +15082,8 @@               <mi>/</mi>               <mn>5</mn>             </mrow>-            <mo>mod</mo>+            <mi>mod</mi>+            <mo>&#8289;</mo>             <mn>7</mn>           </mrow>           <mo>=</mo>@@ -15106,7 +15130,8 @@                 <mo stretchy="true" form="postfix">)</mo>               </mrow>             </mrow>-            <mo>mod</mo>+            <mi>mod</mi>+            <mo>&#8289;</mo>             <mn>3</mn>           </mrow>           <mo>=</mo>@@ -15180,7 +15205,7 @@           </mfrac>           <mrow>             <mi>F</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mi>x</mi>@@ -15212,7 +15237,7 @@         <mrow>           <mrow>             <mi>BinomialDist</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mrow>@@ -15271,7 +15296,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mrow>-            <mo>Pr</mo>+            <mi>Pr</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mrow>@@ -15285,7 +15311,7 @@           <mo>=</mo>           <mrow>             <mi>BinomialDist</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mrow>@@ -15313,7 +15339,8 @@             <mi>k</mi>             <mo>=</mo>             <mrow>-              <mo>max</mo>+              <mi>max</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="true" form="prefix">{</mo>                 <mrow>@@ -15330,7 +15357,7 @@                           <mi>y</mi>                         </mrow>                       </mfrac>-                      <mi>&#8289;</mi>+                      <mo>&#8289;</mo>                       <mrow>                         <mo stretchy="false" form="prefix">(</mo>                         <mrow>@@ -15374,7 +15401,8 @@           <mo>=</mo>           <mrow>             <munder>-              <mo>lim</mo>+              <mi>lim</mi>+              <mo>&#8289;</mo>               <mrow>                 <mi>x</mi>                 <mover>@@ -15388,7 +15416,7 @@               <mrow>                 <mrow>                   <mi>f</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="false" form="prefix">(</mo>                     <mi>x</mi>@@ -15398,7 +15426,7 @@                 <mo>−</mo>                 <mrow>                   <mi>f</mi>-                  <mi>&#8289;</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="false" form="prefix">(</mo>                     <mi>a</mi>@@ -15765,7 +15793,7 @@           <mrow>             <mrow>               <mi>f</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="false" form="prefix">(</mo>                 <mi>x</mi>@@ -16254,7 +16282,7 @@         <mrow>           <mrow>             <mi>f</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mi>x</mi>@@ -16269,8 +16297,8 @@                 <mn>13</mn>                 <mi>&#8290;</mi>                 <mrow>-                  <mo>cos</mo>-                  <mi>&#8289;</mi>+                  <mi>cos</mi>+                  <mo>&#8289;</mo>                   <mi>x</mi>                 </mrow>               </mrow>@@ -16292,10 +16320,11 @@                       <mn>9</mn>                       <mrow>                         <msup>-                          <mo>cos</mo>+                          <mi>cos</mi>+                          <mo>&#8289;</mo>                           <mn>2</mn>                         </msup>-                        <mi>&#8289;</mi>+                        <mo>&#8289;</mo>                         <mi>x</mi>                       </mrow>                     </mfrac>@@ -16304,15 +16333,15 @@                       <mfrac>                         <mn>60</mn>                         <mrow>-                          <mo>cos</mo>-                          <mi>&#8289;</mi>+                          <mi>cos</mi>+                          <mo>&#8289;</mo>                           <mi>x</mi>                         </mrow>                       </mfrac>                       <mi>&#8290;</mi>                       <mrow>-                        <mo>sin</mo>-                        <mi>&#8289;</mi>+                        <mi>sin</mi>+                        <mo>&#8289;</mo>                         <mrow>                           <mo stretchy="true" form="prefix">(</mo>                           <mrow>@@ -16349,8 +16378,8 @@               <mo stretchy="true" form="prefix">∫</mo>               <mrow>                 <mrow>-                  <mo>cos</mo>-                  <mi>&#8289;</mi>+                  <mi>cos</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="false" form="prefix">(</mo>                     <mrow>@@ -16363,8 +16392,8 @@                 </mrow>                 <mi>&#8290;</mi>                 <mrow>-                  <mo>sin</mo>-                  <mi>&#8289;</mi>+                  <mi>sin</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo stretchy="false" form="prefix">(</mo>                     <mrow>@@ -16388,8 +16417,8 @@                 <mrow>                   <mo>−</mo>                   <mrow>-                    <mo>cos</mo>-                    <mi>&#8289;</mi>+                    <mi>cos</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mrow>                         <mo stretchy="false" form="prefix">(</mo>@@ -16424,8 +16453,8 @@                 <mrow>                   <mo>−</mo>                   <mrow>-                    <mo>cos</mo>-                    <mi>&#8289;</mi>+                    <mi>cos</mi>+                    <mo>&#8289;</mo>                     <mrow>                       <mrow>                         <mo stretchy="false" form="prefix">(</mo>@@ -16483,7 +16512,8 @@         <mrow>           <mrow>             <munder>-              <mo>max</mo>+              <mi>max</mi>+              <mo>&#8289;</mo>               <mrow>                 <mrow>                   <mo>−</mo>@@ -16583,8 +16613,8 @@                 <mi>n</mi>               </msup>               <mrow>-                <mo>sin</mo>-                <mi>&#8289;</mi>+                <mi>sin</mi>+                <mo>&#8289;</mo>                 <mi>x</mi>               </mrow>             </mrow>@@ -16613,7 +16643,7 @@             </mfrac>             <mrow>               <mi>f</mi>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mrow>                 <mo stretchy="false" form="prefix">(</mo>                 <mi>x</mi>@@ -16666,7 +16696,7 @@         <mrow>           <mrow>             <mi>f</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mi>x</mi>@@ -16681,8 +16711,8 @@                 <mn>13</mn>                 <mi>&#8290;</mi>                 <mrow>-                  <mo>cos</mo>-                  <mi>&#8289;</mi>+                  <mi>cos</mi>+                  <mo>&#8289;</mo>                   <mi>x</mi>                 </mrow>               </mrow>@@ -16704,10 +16734,11 @@                       <mn>9</mn>                       <mrow>                         <msup>-                          <mo>cos</mo>+                          <mi>cos</mi>+                          <mo>&#8289;</mo>                           <mn>2</mn>                         </msup>-                        <mi>&#8289;</mi>+                        <mo>&#8289;</mo>                         <mi>x</mi>                       </mrow>                     </mfrac>@@ -16716,15 +16747,15 @@                       <mfrac>                         <mn>60</mn>                         <mrow>-                          <mo>cos</mo>-                          <mi>&#8289;</mi>+                          <mi>cos</mi>+                          <mo>&#8289;</mo>                           <mi>x</mi>                         </mrow>                       </mfrac>                       <mi>&#8290;</mi>                       <mrow>-                        <mo>sin</mo>-                        <mi>&#8289;</mi>+                        <mi>sin</mi>+                        <mo>&#8289;</mo>                         <mrow>                           <mo stretchy="true" form="prefix">(</mo>                           <mrow>@@ -16838,7 +16869,8 @@             <mrow>               <mo stretchy="true" form="prefix">(</mo>               <mrow>-                <mo>∇×</mo>+                <mi>∇×</mi>+                <mo>&#8289;</mo>                 <mi>𝐅</mi>               </mrow>               <mo stretchy="true" form="postfix">)</mo>@@ -17049,8 +17081,8 @@                   </mtd>                   <mtd columnalign="center" style="text-align: center">                     <mrow>-                      <mo>sin</mo>-                      <mi>&#8289;</mi>+                      <mi>sin</mi>+                      <mo>&#8289;</mo>                       <mi>θ</mi>                     </mrow>                   </mtd>@@ -17250,8 +17282,8 @@             <mtr>               <mtd columnalign="center" style="text-align: center">                 <mrow>-                  <mo>sin</mo>-                  <mi>&#8289;</mi>+                  <mi>sin</mi>+                  <mo>&#8289;</mo>                   <mi>θ</mi>                 </mrow>               </mtd>@@ -17339,12 +17371,12 @@         <mrow>           <mrow>             <mi>f</mi>-            <mi>&#8289;</mi>+            <mo>&#8289;</mo>             <mrow>               <mo stretchy="false" form="prefix">(</mo>               <mrow>                 <mi>g</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mi>x</mi>@@ -17358,10 +17390,11 @@           <mrow>             <mrow>               <msup>-                <mo>sin</mo>+                <mi>sin</mi>+                <mo>&#8289;</mo>                 <mn>3</mn>               </msup>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <msup>                 <mi>x</mi>                 <mn>2</mn>@@ -17370,8 +17403,8 @@             <mo>+</mo>             <mrow>               <mrow>-                <mo>sin</mo>-                <mi>&#8289;</mi>+                <mi>sin</mi>+                <mo>&#8289;</mo>                 <msup>                   <mi>x</mi>                   <mn>2</mn>@@ -17379,13 +17412,13 @@               </mrow>               <mi>&#8290;</mi>               <mrow>-                <mo>sin</mo>-                <mi>&#8289;</mi>+                <mi>sin</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="true" form="prefix">(</mo>                   <mrow>-                    <mo>sin</mo>-                    <mi>&#8289;</mi>+                    <mi>sin</mi>+                    <mo>&#8289;</mo>                     <msup>                       <mi>x</mi>                       <mn>2</mn>@@ -18121,7 +18154,7 @@             <mtd columnalign="center" style="text-align: center">               <mrow>                 <mi>V</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mrow>@@ -18141,7 +18174,7 @@             <mtd columnalign="center" style="text-align: center">               <mrow>                 <mi>F</mi>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="false" form="prefix">(</mo>                   <mrow>@@ -18189,13 +18222,14 @@               <mo stretchy="false" form="prefix">(</mo>               <mrow>                 <msup>-                  <mo>csc</mo>+                  <mi>csc</mi>+                  <mo>&#8289;</mo>                   <mrow>                     <mo>−</mo>                     <mn>1</mn>                   </mrow>                 </msup>-                <mi>&#8289;</mi>+                <mo>&#8289;</mo>                 <mi>x</mi>               </mrow>               <mo stretchy="false" form="postfix">)</mo>@@ -18236,13 +18270,14 @@           <mrow>             <mrow>               <msup>-                <mo>tanh</mo>+                <mi>tanh</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo>−</mo>                   <mn>1</mn>                 </mrow>               </msup>-              <mi>&#8289;</mi>+              <mo>&#8289;</mo>               <mi>x</mi>             </mrow>             <mo>=</mo>@@ -18253,8 +18288,8 @@               </mfrac>               <mi>&#8290;</mi>               <mrow>-                <mo>ln</mo>-                <mi>&#8289;</mi>+                <mi>ln</mi>+                <mo>&#8289;</mo>                 <mrow>                   <mo stretchy="true" form="prefix">(</mo>                   <mfrac>@@ -18656,9 +18691,11 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mi>x</mi>-          <mo>≰⃥</mo>+          <mi>≰⃥</mi>+          <mo>&#8289;</mo>           <mi>y</mi>-          <mo>≰⃥</mo>+          <mi>≰⃥</mi>+          <mo>&#8289;</mo>           <mi>z</mi>         </mrow>       </mtd>@@ -18668,7 +18705,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <mover>-            <mo>lim</mo>+            <mi>lim</mi>+            <mo>&#8289;</mo>             <mo accent="true">¯</mo>           </mover>           <mi>x</mi>@@ -18680,7 +18718,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <munder>-            <mo>lim</mo>+            <mi>lim</mi>+            <mo>&#8289;</mo>             <mo accent="true">̲</mo>           </munder>           <mi>x</mi>@@ -18692,7 +18731,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <munder>-            <mo>lim</mo>+            <mi>lim</mi>+            <mo>&#8289;</mo>             <mo accent="true">→</mo>           </munder>           <mi>x</mi>@@ -18704,7 +18744,8 @@       <mtd columnalign="center" style="text-align: center">         <mrow>           <munder>-            <mo>lim</mo>+            <mi>lim</mi>+            <mo>&#8289;</mo>             <mo accent="true">←</mo>           </munder>           <mi>x</mi>@@ -19552,8 +19593,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19569,8 +19610,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19586,8 +19627,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19603,8 +19644,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19620,8 +19661,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19637,8 +19678,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19654,8 +19695,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19671,8 +19712,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19688,8 +19729,8 @@           <mo stretchy="true" form="prefix">(</mo>           <mfrac>             <mrow>-              <mo>sin</mo>-              <mi>&#8289;</mi>+              <mi>sin</mi>+              <mo>&#8289;</mo>               <mi>θ</mi>             </mrow>             <mi>M</mi>@@ -19703,8 +19744,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>@@ -19716,8 +19757,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>@@ -19729,8 +19770,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>@@ -19742,8 +19783,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>@@ -19755,8 +19796,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>@@ -19768,8 +19809,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>@@ -19781,8 +19822,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>@@ -19794,8 +19835,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>@@ -19807,8 +19848,8 @@       <mtd columnalign="center" style="text-align: center">         <mfrac>           <mrow>-            <mo>sin</mo>-            <mi>&#8289;</mi>+            <mi>sin</mi>+            <mo>&#8289;</mo>             <mi>θ</mi>           </mrow>           <mi>M</mi>
test/writer/mml/d.test view
@@ -406,7 +406,7 @@         <mtext mathvariant="normal">Delta</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Δ</mo>+        <mo mathvariant="normal">Δ</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/emptyContent1.test view
@@ -5,6 +5,7 @@ <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">   <msub>     <mn></mn>-    <mo></mo>+    <mi></mi>+    <mo>&#8289;</mo>   </msub> </math>
test/writer/mml/f.test view
@@ -157,7 +157,8 @@         <mtext mathvariant="normal">fjlig</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>fj</mo>+        <mi>fj</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/g.test view
@@ -117,7 +117,7 @@         <mtext mathvariant="normal">Gamma</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Γ</mo>+        <mo mathvariant="normal">Γ</mo>       </mtd>     </mtr>     <mtr>@@ -317,7 +317,8 @@         <mtext mathvariant="normal">gesl</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⋛︀</mo>+        <mi>⋛︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -717,7 +718,8 @@         <mtext mathvariant="normal">gvertneqq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≩︀</mo>+        <mi>≩︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -725,7 +727,8 @@         <mtext mathvariant="normal">gvnE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≩︀</mo>+        <mi>≩︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>   </mtable>
test/writer/mml/invChars.test view
@@ -12,11 +12,12 @@ <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">   <mrow>     <mn></mn>-    <mo></mo>     <mi></mi>+    <mo>&#8289;</mo>+    <mi></mi>     <mi>&#8290;</mi>     <mn></mn>-    <mi>&#8289;</mi>+    <mo>&#8289;</mo>     <mspace width="0.0em" />   </mrow> </math>
test/writer/mml/l.test view
@@ -364,7 +364,7 @@         <mtext mathvariant="normal">Lambda</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Λ</mo>+        <mo mathvariant="normal">Λ</mo>       </mtd>     </mtr>     <mtr>@@ -548,7 +548,8 @@         <mtext mathvariant="normal">lates</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⪭︀</mo>+        <mi>⪭︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1116,7 +1117,8 @@         <mtext mathvariant="normal">lesg</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⋚︀</mo>+        <mi>⋚︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1964,7 +1966,8 @@         <mtext mathvariant="normal">lvertneqq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≨︀</mo>+        <mi>≨︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1972,7 +1975,8 @@         <mtext mathvariant="normal">lvnE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≨︀</mo>+        <mi>≨︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>   </mtable>
test/writer/mml/mfencedAempty.test view
@@ -10,6 +10,7 @@       <mi>x</mi>       <mi>y</mi>     </mrow>-    <mo></mo>+    <mi></mi>+    <mo>&#8289;</mo>   </mrow> </math>
test/writer/mml/mfracZcomp-01.test view
@@ -15,8 +15,8 @@     <mtext mathvariant="normal">Inline, auto, normal line </mtext>     <mfrac>       <mrow>-        <mo>sin</mo>-        <mi>&#8289;</mi>+        <mi>sin</mi>+        <mo>&#8289;</mo>         <mi>θ</mi>       </mrow>       <mi>π</mi>
test/writer/mml/mfracZcomp-02.test view
@@ -15,8 +15,8 @@     <mtext mathvariant="normal">Inline, display style, normal line </mtext>     <mfrac>       <mrow>-        <mo>ln</mo>-        <mi>&#8289;</mi>+        <mi>ln</mi>+        <mo>&#8289;</mo>         <mi>x</mi>       </mrow>       <mi>y</mi>
test/writer/mml/mfracZcomp-03.test view
@@ -15,8 +15,8 @@     <mtext mathvariant="normal">Inline, text style, normal line </mtext>     <mfrac>       <mrow>-        <mo>tan</mo>-        <mi>&#8289;</mi>+        <mi>tan</mi>+        <mo>&#8289;</mo>         <mi>θ</mi>       </mrow>       <mn>67</mn>
test/writer/mml/mfracZcomp-12.test view
@@ -21,8 +21,8 @@       <mo stretchy="true" form="prefix">(</mo>       <mfrac>         <mrow>-          <mo>log</mo>-          <mi>&#8289;</mi>+          <mi>log</mi>+          <mo>&#8289;</mo>           <mi>x</mi>         </mrow>         <mi>y</mi>
test/writer/mml/mfracZcomp-13.test view
@@ -21,8 +21,8 @@       <mo stretchy="true" form="prefix">|</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-14.test view
@@ -23,8 +23,8 @@       <mo stretchy="true" form="infix">↑</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-15.test view
@@ -23,8 +23,8 @@       <mo stretchy="true" form="infix">↓</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-16.test view
@@ -21,8 +21,8 @@       <mo stretchy="true" form="prefix">⌊</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-17.test view
@@ -21,8 +21,8 @@       <mo stretchy="true" form="prefix">⌈</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-18.test view
@@ -24,8 +24,8 @@       <mo stretchy="true" form="infix">↕</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-19.test view
@@ -23,8 +23,8 @@       <mo stretchy="true" form="infix">⇑</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-20.test view
@@ -25,8 +25,8 @@       <mo stretchy="true" form="infix">⇓</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-21.test view
@@ -25,8 +25,8 @@       <mo stretchy="true" form="infix">⇕</mo>       <mfrac>         <mrow>-          <mo>sin</mo>-          <mi>&#8289;</mi>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>         </mrow>         <mi>M</mi>
test/writer/mml/mfracZcomp-24.test view
@@ -55,8 +55,8 @@               <mfrac>                 <mrow>                   <mrow>-                    <mo>sin</mo>-                    <mi>&#8289;</mi>+                    <mi>sin</mi>+                    <mo>&#8289;</mo>                     <mi>θ</mi>                   </mrow>                   <mo>+</mo>
test/writer/mml/mfracZcomp-25.test view
@@ -55,8 +55,8 @@               <mfrac>                 <mrow>                   <mrow>-                    <mo>sin</mo>-                    <mi>&#8289;</mi>+                    <mi>sin</mi>+                    <mo>&#8289;</mo>                     <mi>θ</mi>                   </mrow>                   <mo>+</mo>
test/writer/mml/mfracZcomp-30.test view
@@ -58,7 +58,7 @@   <mrow>     <mrow>       <mi>HypergeomDist</mi>-      <mi>&#8289;</mi>+      <mo>&#8289;</mo>       <mrow>         <mo stretchy="true" form="prefix">(</mo>         <mrow>
test/writer/mml/mfracZcomp-31.test view
@@ -58,7 +58,7 @@     <mrow>       <mrow>         <mi>F</mi>-        <mi>&#8289;</mi>+        <mo>&#8289;</mo>         <mrow>           <mo stretchy="true" form="prefix">(</mo>           <mrow>
test/writer/mml/mfracZcomp-33.test view
@@ -73,7 +73,8 @@           <mn>2</mn>           <mi>i</mi>           <mi> </mi>-          <mo>cos</mo>+          <mi>cos</mi>+          <mo>&#8289;</mo>           <mrow>             <mo stretchy="true" form="prefix">(</mo>             <mfrac>
test/writer/mml/mi2.test view
@@ -4,8 +4,8 @@ <?xml version='1.0' ?> <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">   <mrow>-    <mo>sin</mo>-    <mi>&#8289;</mi>+    <mi>sin</mi>+    <mo>&#8289;</mo>     <mi>x</mi>   </mrow> </math>
test/writer/mml/mi4.test view
@@ -8,7 +8,7 @@ <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">   <mrow>     <mi>f</mi>-    <mi>&#8289;</mi>+    <mo>&#8289;</mo>     <mrow>       <mo stretchy="true" form="prefix">(</mo>       <mi>x</mi>
test/writer/mml/miSfonts8.test view
@@ -23,7 +23,7 @@     <mo>+</mo>     <mi>f</mi>     <mo>+</mo>-    <mi>Γ</mi>+    <mi mathvariant="normal">Γ</mi>     <mo>+</mo>     <mi>d</mi>   </mrow>
test/writer/mml/mo6.test view
@@ -18,18 +18,20 @@ <?xml version='1.0' ?> <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">   <mrow>-    <mo>there exists</mo>+    <mi>there exists</mi>+    <mo>&#8289;</mo>     <mrow>       <mrow>         <mi>δ</mi>         <mo>&gt;</mo>         <mn>0</mn>       </mrow>-      <mo>such that</mo>+      <mi>such that</mi>+      <mo>&#8289;</mo>       <mrow>         <mrow>           <mi>f</mi>-          <mi>&#8289;</mi>+          <mo>&#8289;</mo>           <mrow>             <mo stretchy="true" form="prefix">(</mo>             <mi>x</mi>
test/writer/mml/n.test view
@@ -405,7 +405,8 @@         <mtext mathvariant="normal">nang</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>∠⃒</mo>+        <mi>∠⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -421,7 +422,8 @@         <mtext mathvariant="normal">napE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⩰̸</mo>+        <mi>⩰̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -429,7 +431,8 @@         <mtext mathvariant="normal">napid</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≋̸</mo>+        <mi>≋̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -549,7 +552,8 @@         <mtext mathvariant="normal">ncongdot</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⩭̸</mo>+        <mi>⩭̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -629,7 +633,8 @@         <mtext mathvariant="normal">nedot</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≐̸</mo>+        <mi>≐̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -709,7 +714,8 @@         <mtext mathvariant="normal">NewLine</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo></mo>+        <mi></mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -757,7 +763,8 @@         <mtext mathvariant="normal">ngE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≧̸</mo>+        <mi>≧̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -773,7 +780,8 @@         <mtext mathvariant="normal">ngeqq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≧̸</mo>+        <mi>≧̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -797,7 +805,8 @@         <mtext mathvariant="normal">nGg</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⋙̸</mo>+        <mi>⋙̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -821,7 +830,8 @@         <mtext mathvariant="normal">nGt</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≫⃒</mo>+        <mi>≫⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1029,7 +1039,8 @@         <mtext mathvariant="normal">nLl</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⋘̸</mo>+        <mi>⋘̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1053,7 +1064,8 @@         <mtext mathvariant="normal">nLt</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≪⃒</mo>+        <mi>≪⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1213,7 +1225,8 @@         <mtext mathvariant="normal">NotGreaterFullEqual</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≧̸</mo>+        <mi>≧̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1277,7 +1290,8 @@         <mtext mathvariant="normal">notindot</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⋵̸</mo>+        <mi>⋵̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1285,7 +1299,8 @@         <mtext mathvariant="normal">notinE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⋹̸</mo>+        <mi>⋹̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1645,7 +1660,8 @@         <mtext mathvariant="normal">nparsl</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫽⃥</mo>+        <mi>⫽⃥</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1653,7 +1669,8 @@         <mtext mathvariant="normal">npart</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>∂̸</mo>+        <mi>∂̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1725,7 +1742,8 @@         <mtext mathvariant="normal">nrarrc</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⤳̸</mo>+        <mi>⤳̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1733,7 +1751,8 @@         <mtext mathvariant="normal">nrarrw</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>↝̸</mo>+        <mi>↝̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1901,7 +1920,8 @@         <mtext mathvariant="normal">nsubE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫅̸</mo>+        <mi>⫅̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1925,7 +1945,8 @@         <mtext mathvariant="normal">nsubseteqq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫅̸</mo>+        <mi>⫅̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1965,7 +1986,8 @@         <mtext mathvariant="normal">nsupE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫆̸</mo>+        <mi>⫆̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -1989,7 +2011,8 @@         <mtext mathvariant="normal">nsupseteqq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫆̸</mo>+        <mi>⫆̸</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -2093,7 +2116,8 @@         <mtext mathvariant="normal">nvap</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≍⃒</mo>+        <mi>≍⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -2133,7 +2157,8 @@         <mtext mathvariant="normal">nvge</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≥⃒</mo>+        <mi>≥⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -2141,7 +2166,8 @@         <mtext mathvariant="normal">nvgt</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>&gt;⃒</mo>+        <mi>&gt;⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -2173,7 +2199,8 @@         <mtext mathvariant="normal">nvle</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>≤⃒</mo>+        <mi>≤⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -2181,7 +2208,8 @@         <mtext mathvariant="normal">nvlt</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>&lt;⃒</mo>+        <mi>&lt;⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -2189,7 +2217,8 @@         <mtext mathvariant="normal">nvltrie</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⊴⃒</mo>+        <mi>⊴⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -2205,7 +2234,8 @@         <mtext mathvariant="normal">nvrtrie</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⊵⃒</mo>+        <mi>⊵⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -2213,7 +2243,8 @@         <mtext mathvariant="normal">nvsim</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>∼⃒</mo>+        <mi>∼⃒</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/o.test view
@@ -285,7 +285,7 @@         <mtext mathvariant="normal">ohm</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ω</mo>+        <mo mathvariant="normal">Ω</mo>       </mtd>     </mtr>     <mtr>@@ -357,7 +357,7 @@         <mtext mathvariant="normal">Omega</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ω</mo>+        <mo mathvariant="normal">Ω</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/operatorname.test view
@@ -76,23 +76,27 @@       <mtr>         <mtd columnalign="left" style="text-align: left">           <msub>-            <mo>div</mo>+            <mi>div</mi>+            <mo>&#8289;</mo>             <mi>x</mi>           </msub>           <mi>u</mi>           <msup>-            <mo>div</mo>+            <mi>div</mi>+            <mo>&#8289;</mo>             <mi>x</mi>           </msup>           <mi>u</mi>           <msubsup>-            <mo>div</mo>+            <mi>div</mi>+            <mo>&#8289;</mo>             <mi>x</mi>             <mi>y</mi>           </msubsup>           <mi>u</mi>           <msubsup>-            <mo>div</mo>+            <mi>div</mi>+            <mo>&#8289;</mo>             <mi>x</mi>             <mi>y</mi>           </msubsup>@@ -105,7 +109,8 @@       <mtr>         <mtd columnalign="left" style="text-align: left">           <munder>-            <mo>⋆-lim&#39;sup</mo>+            <mi>⋆-lim&#39;sup</mi>+            <mo>&#8289;</mo>             <mrow>               <mi>x</mi>               <mo>→</mo>@@ -114,12 +119,14 @@           </munder>           <mi>u</mi>           <mover>-            <mo>⋆-lim&#39;sup</mo>+            <mi>⋆-lim&#39;sup</mi>+            <mo>&#8289;</mo>             <mi>w</mi>           </mover>           <mi>u</mi>           <munderover>-            <mo>⋆-lim&#39;sup</mo>+            <mi>⋆-lim&#39;sup</mi>+            <mo>&#8289;</mo>             <mrow>               <mi>x</mi>               <mo>→</mo>@@ -129,7 +136,8 @@           </munderover>           <mi>u</mi>           <munderover>-            <mo>⋆-lim&#39;sup</mo>+            <mi>⋆-lim&#39;sup</mi>+            <mo>&#8289;</mo>             <mrow>               <mi>x</mi>               <mo>→</mo>@@ -146,7 +154,8 @@       <mtr>         <mtd columnalign="left" style="text-align: left">           <msub>-            <mo>⋆-lim&#39;sup</mo>+            <mi>⋆-lim&#39;sup</mi>+            <mo>&#8289;</mo>             <mrow>               <mi>x</mi>               <mo>→</mo>@@ -155,12 +164,14 @@           </msub>           <mi>u</mi>           <msup>-            <mo>⋆-lim&#39;sup</mo>+            <mi>⋆-lim&#39;sup</mi>+            <mo>&#8289;</mo>             <mi>w</mi>           </msup>           <mi>u</mi>           <msubsup>-            <mo>⋆-lim&#39;sup</mo>+            <mi>⋆-lim&#39;sup</mi>+            <mo>&#8289;</mo>             <mrow>               <mi>x</mi>               <mo>→</mo>@@ -170,7 +181,8 @@           </msubsup>           <mi>u</mi>           <msubsup>-            <mo>⋆-lim&#39;sup</mo>+            <mi>⋆-lim&#39;sup</mi>+            <mo>&#8289;</mo>             <mrow>               <mi>x</mi>               <mo>→</mo>@@ -187,12 +199,14 @@       <mtr>         <mtd columnalign="left" style="text-align: left">           <msub>-            <mo>curl</mo>+            <mi>curl</mi>+            <mo>&#8289;</mo>             <mi>x</mi>           </msub>           <mi>v</mi>           <munder>-            <mo>argmax</mo>+            <mi>argmax</mi>+            <mo>&#8289;</mo>             <mi>K</mi>           </munder>           <mi>u</mi>
test/writer/mml/p.test view
@@ -241,7 +241,7 @@         <mtext mathvariant="normal">Phi</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Φ</mo>+        <mo mathvariant="normal">Φ</mo>       </mtd>     </mtr>     <mtr>@@ -281,7 +281,7 @@         <mtext mathvariant="normal">Pi</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Π</mo>+        <mo mathvariant="normal">Π</mo>       </mtd>     </mtr>     <mtr>@@ -769,7 +769,7 @@         <mtext mathvariant="normal">Psi</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ψ</mo>+        <mo mathvariant="normal">Ψ</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/primes1.test view
@@ -62,7 +62,8 @@     <mo>+</mo>     <msup>       <mi>x</mi>-      <mo>&#39;&#39;</mo>+      <mi>&#39;&#39;</mi>+      <mo>&#8289;</mo>     </msup>     <mo>+</mo>     <mi>x</mi>
test/writer/mml/s.test view
@@ -636,7 +636,7 @@         <mtext mathvariant="normal">Sigma</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Σ</mo>+        <mo mathvariant="normal">Σ</mo>       </mtd>     </mtr>     <mtr>@@ -812,7 +812,8 @@         <mtext mathvariant="normal">smtes</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⪬︀</mo>+        <mi>⪬︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -908,7 +909,8 @@         <mtext mathvariant="normal">sqcaps</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⊓︀</mo>+        <mi>⊓︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -924,7 +926,8 @@         <mtext mathvariant="normal">sqcups</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⊔︀</mo>+        <mi>⊔︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/serif-italic.test view
@@ -42,7 +42,7 @@     </mtr>     <mtr>       <mtd columnalign="left" style="text-align: left">-        <mtext mathvariant="italic">`𝑎𝑏𝑐𝑑𝑒𝑓𝑔h𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧{|}~</mtext>+        <mtext mathvariant="italic">`𝑎𝑏𝑐𝑑𝑒𝑓𝑔ℎ𝑖𝑗𝑘𝑙𝑚𝑛𝑜𝑝𝑞𝑟𝑠𝑡𝑢𝑣𝑤𝑥𝑦𝑧{|}~</mtext>       </mtd>     </mtr>     <mtr>
test/writer/mml/simplePres.test view
@@ -47,7 +47,8 @@         </mfrac>         <mo>,</mo>         <mrow>-          <mo>sin</mo>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>x</mi>         </mrow>         <mo>.</mo>
test/writer/mml/sphere_volume.test view
@@ -155,7 +155,7 @@     <mo stretchy="false" form="postfix">}</mo>     <mtable>       <mtr>-        <mtd columnalign="right" style="text-align: right">+        <mtd columnalign="right" style="text-align: right; padding-right: 0">           <mrow>             <mi mathvariant="normal">V</mi>             <mi mathvariant="normal">o</mi>@@ -165,7 +165,7 @@             <mi mathvariant="normal">e</mi>           </mrow>         </mtd>-        <mtd columnalign="left" style="text-align: left">+        <mtd columnalign="left" style="text-align: left; padding-left: 0">           <mo>=</mo>           <munder>             <mo>∭</mo>@@ -176,7 +176,8 @@             <mi>ρ</mi>             <mn>2</mn>           </msup>-          <mo>sin</mo>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>           <mspace width="0.167em" />           <mi mathvariant="normal">d</mi>@@ -190,8 +191,8 @@         </mtd>       </mtr>       <mtr>-        <mtd columnalign="right" style="text-align: right" />-        <mtd columnalign="left" style="text-align: left">+        <mtd columnalign="right" style="text-align: right; padding-right: 0" />+        <mtd columnalign="left" style="text-align: left; padding-left: 0">           <mo>=</mo>           <msubsup>             <mo>∫</mo>@@ -211,7 +212,8 @@             <mi>π</mi>           </msubsup>           <mspace width="-0.167em" />-          <mo>sin</mo>+          <mi>sin</mi>+          <mo>&#8289;</mo>           <mi>θ</mi>           <mspace width="0.167em" />           <mi mathvariant="normal">d</mi>@@ -232,8 +234,8 @@         </mtd>       </mtr>       <mtr>-        <mtd columnalign="right" style="text-align: right" />-        <mtd columnalign="left" style="text-align: left">+        <mtd columnalign="right" style="text-align: right; padding-right: 0" />+        <mtd columnalign="left" style="text-align: left; padding-left: 0">           <mo>=</mo>           <mi>ϕ</mi>           <msubsup>@@ -248,7 +250,7 @@           <mrow>             <mo stretchy="true" form="prefix">(</mo>             <mo>−</mo>-            <mo>cos</mo>+            <mi>cos</mi>             <mi>θ</mi>             <mo stretchy="true" form="postfix">)</mo>           </mrow>@@ -258,10 +260,12 @@             <mi>π</mi>           </msubsup>           <mspace width="0.222em" />-          <mfrac displaystyle="false">-            <mn>1</mn>-            <mn>3</mn>-          </mfrac>+          <mstyle displaystyle="false">+            <mfrac>+              <mn>1</mn>+              <mn>3</mn>+            </mfrac>+          </mstyle>           <msup>             <mi>ρ</mi>             <mn>3</mn>@@ -274,18 +278,20 @@         </mtd>       </mtr>       <mtr>-        <mtd columnalign="right" style="text-align: right" />-        <mtd columnalign="left" style="text-align: left">+        <mtd columnalign="right" style="text-align: right; padding-right: 0" />+        <mtd columnalign="left" style="text-align: left; padding-left: 0">           <mo>=</mo>           <mn>2</mn>           <mi>π</mi>           <mo>×</mo>           <mn>2</mn>           <mo>×</mo>-          <mfrac displaystyle="false">-            <mn>1</mn>-            <mn>3</mn>-          </mfrac>+          <mstyle displaystyle="false">+            <mfrac>+              <mn>1</mn>+              <mn>3</mn>+            </mfrac>+          </mstyle>           <msup>             <mi>R</mi>             <mn>3</mn>@@ -293,13 +299,15 @@         </mtd>       </mtr>       <mtr>-        <mtd columnalign="right" style="text-align: right" />-        <mtd columnalign="left" style="text-align: left">+        <mtd columnalign="right" style="text-align: right; padding-right: 0" />+        <mtd columnalign="left" style="text-align: left; padding-left: 0">           <mo>=</mo>-          <mfrac displaystyle="false">-            <mn>4</mn>-            <mn>3</mn>-          </mfrac>+          <mstyle displaystyle="false">+            <mfrac>+              <mn>4</mn>+              <mn>3</mn>+            </mfrac>+          </mstyle>           <mi>π</mi>           <msup>             <mi>R</mi>
test/writer/mml/subsup.test view
@@ -81,27 +81,32 @@     </msubsup>     <mspace width="1.0em" />     <munder>-      <mo>min</mo>+      <mi>min</mi>+      <mo>&#8289;</mo>       <mi>A</mi>     </munder>     <mspace width="1.0em" />     <munder>-      <mo>max</mo>+      <mi>max</mi>+      <mo>&#8289;</mo>       <mi>B</mi>     </munder>     <mspace width="1.0em" />     <munder>-      <mo>det</mo>+      <mi>det</mi>+      <mo>&#8289;</mo>       <mi>C</mi>     </munder>     <mspace width="1.0em" />     <munder>-      <mo>Pr</mo>+      <mi>Pr</mi>+      <mo>&#8289;</mo>       <mi>A</mi>     </munder>     <mspace width="1.0em" />     <munder>-      <mo>gcd</mo>+      <mi>gcd</mi>+      <mo>&#8289;</mo>       <mi>A</mi>     </munder>     <mspace width="1.0em" />
test/writer/mml/t.test view
@@ -101,7 +101,8 @@         <mtext mathvariant="normal">Tab</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo></mo>+        <mi></mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -245,7 +246,7 @@         <mtext mathvariant="normal">Theta</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Θ</mo>+        <mo mathvariant="normal">Θ</mo>       </mtd>     </mtr>     <mtr>@@ -277,7 +278,8 @@         <mtext mathvariant="normal">ThickSpace</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>  </mo>+        <mi>  </mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/u.test view
@@ -600,7 +600,7 @@         <mtext mathvariant="normal">Upsilon</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Υ</mo>+        <mo mathvariant="normal">Υ</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/v.test view
@@ -185,7 +185,8 @@         <mtext mathvariant="normal">varsubsetneq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⊊︀</mo>+        <mi>⊊︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -193,7 +194,8 @@         <mtext mathvariant="normal">varsubsetneqq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫋︀</mo>+        <mi>⫋︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -201,7 +203,8 @@         <mtext mathvariant="normal">varsupsetneq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⊋︀</mo>+        <mi>⊋︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -209,7 +212,8 @@         <mtext mathvariant="normal">varsupsetneqq</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫌︀</mo>+        <mi>⫌︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -521,7 +525,8 @@         <mtext mathvariant="normal">vsubne</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⊊︀</mo>+        <mi>⊊︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -529,7 +534,8 @@         <mtext mathvariant="normal">vsubnE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫋︀</mo>+        <mi>⫋︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -537,7 +543,8 @@         <mtext mathvariant="normal">vsupne</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⊋︀</mo>+        <mi>⊋︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>@@ -545,7 +552,8 @@         <mtext mathvariant="normal">vsupnE</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>⫌︀</mo>+        <mi>⫌︀</mi>+        <mo>&#8289;</mo>       </mtd>     </mtr>     <mtr>
test/writer/mml/white10.test view
@@ -32,15 +32,20 @@     <mi>H</mi>     <mi> </mi>     <mi>H</mi>-    <mo> ︀</mo>+    <mi> ︀</mi>+    <mo>&#8289;</mo>     <mi>H</mi>-    <mo> ︀</mo>+    <mi> ︀</mi>+    <mo>&#8289;</mo>     <mi>H</mi>-    <mo> ︀</mo>+    <mi> ︀</mi>+    <mo>&#8289;</mo>     <mi>H</mi>-    <mo> ︀</mo>+    <mi> ︀</mi>+    <mo>&#8289;</mo>     <mi>H</mi>-    <mo></mo>+    <mi></mi>+    <mo>&#8289;</mo>     <mi>H</mi>   </mrow> </math>
test/writer/mml/x.test view
@@ -112,7 +112,7 @@         <mtext mathvariant="normal">Xi</mtext>       </mtd>       <mtd columnalign="center" style="text-align: center">-        <mo>Ξ</mo>+        <mo mathvariant="normal">Ξ</mo>       </mtd>     </mtr>     <mtr>
test/writer/omml/20.test view
@@ -124,806 +124,806 @@   <m:oMath>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>A</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>B</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>C</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>D</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>E</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>F</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>G</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>H</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>I</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>J</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>K</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>L</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>M</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>N</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>O</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>P</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>Q</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>R</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>S</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>T</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>U</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>V</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>W</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>X</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>Y</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>Z</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>a</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>b</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>c</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>d</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>e</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>f</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>g</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>h</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>i</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>j</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>k</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>l</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>m</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>n</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>o</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>p</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>q</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>r</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>s</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>t</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>u</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>v</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>w</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>x</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>y</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="script" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>z</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>A</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>B</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>C</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>D</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>E</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>F</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>G</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>H</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>I</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>J</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>K</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>L</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>M</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>N</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>O</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>P</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>Q</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>R</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>S</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>T</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>U</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>V</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>W</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>X</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>Y</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>Z</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>a</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>b</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>c</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>d</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>e</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>f</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>g</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>h</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>i</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>j</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>k</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>l</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>m</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>n</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>o</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>p</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>q</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>r</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>s</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>t</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>u</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>v</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>w</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>x</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>y</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>z</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>0</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>1</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>2</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>3</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>4</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>5</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>6</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>7</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>8</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>9</m:t>     </m:r>     <m:r>       <m:rPr>-        <m:sty m:val="p" />         <m:scr m:val="double-struck" />+        <m:sty m:val="p" />       </m:rPr>       <m:t>0</m:t>     </m:r>
test/writer/omml/22.test view
@@ -280,8 +280,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>textrm</m:t>           </m:r>@@ -301,8 +301,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathrm</m:t>           </m:r>@@ -351,8 +351,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathup</m:t>           </m:r>@@ -401,8 +401,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>text</m:t>           </m:r>@@ -422,8 +422,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mbox</m:t>           </m:r>@@ -443,8 +443,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbf</m:t>           </m:r>@@ -493,8 +493,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbfup</m:t>           </m:r>@@ -543,8 +543,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>textbf</m:t>           </m:r>@@ -564,8 +564,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathit</m:t>           </m:r>@@ -614,8 +614,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>textit</m:t>           </m:r>@@ -635,8 +635,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathtt</m:t>           </m:r>@@ -644,43 +644,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -691,8 +691,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>texttt</m:t>           </m:r>@@ -701,8 +701,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>ABCabc</m:t>           </m:r>@@ -713,8 +713,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathsf</m:t>           </m:r>@@ -722,43 +722,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -769,8 +769,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathsfup</m:t>           </m:r>@@ -778,43 +778,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -825,8 +825,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbb</m:t>           </m:r>@@ -834,43 +834,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -881,8 +881,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathcal</m:t>           </m:r>@@ -890,43 +890,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -937,8 +937,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathscr</m:t>           </m:r>@@ -946,43 +946,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -993,8 +993,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathfrak</m:t>           </m:r>@@ -1002,43 +1002,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -1049,8 +1049,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbfit</m:t>           </m:r>@@ -1099,8 +1099,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbfsfup</m:t>           </m:r>@@ -1108,43 +1108,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -1155,8 +1155,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbfsfit</m:t>           </m:r>@@ -1164,43 +1164,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -1211,8 +1211,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbfscr</m:t>           </m:r>@@ -1220,43 +1220,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -1267,8 +1267,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbffrak</m:t>           </m:r>@@ -1276,43 +1276,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -1323,8 +1323,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathbfcal</m:t>           </m:r>@@ -1332,43 +1332,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>c</m:t>           </m:r>@@ -1379,8 +1379,8 @@           <m:r>             <m:rPr>               <m:nor />-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>mathsfit</m:t>           </m:r>@@ -1388,43 +1388,43 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>A</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>B</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>C</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>a</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>b</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>c</m:t>           </m:r>
test/writer/omml/complex3.test view
@@ -13821,6 +13821,9 @@           <m:sSubSup>             <m:e>               <m:r>+                <m:rPr>+                  <m:sty m:val="p" />+                </m:rPr>                 <m:t>Γ</m:t>               </m:r>             </m:e>@@ -16522,6 +16525,9 @@                 <m:sSup>                   <m:e>                     <m:r>+                      <m:rPr>+                        <m:sty m:val="p" />+                      </m:rPr>                       <m:t>Ω</m:t>                     </m:r>                   </m:e>@@ -16573,6 +16579,9 @@                 <m:sSup>                   <m:e>                     <m:r>+                      <m:rPr>+                        <m:sty m:val="p" />+                      </m:rPr>                       <m:t>Ω</m:t>                     </m:r>                   </m:e>@@ -16647,6 +16656,9 @@                 <m:sSup>                   <m:e>                     <m:r>+                      <m:rPr>+                        <m:sty m:val="p" />+                      </m:rPr>                       <m:t>Ω</m:t>                     </m:r>                   </m:e>@@ -16696,6 +16708,9 @@                   <m:t>;</m:t>                 </m:r>                 <m:r>+                  <m:rPr>+                    <m:sty m:val="p" />+                  </m:rPr>                   <m:t>Ω</m:t>                 </m:r>                 <m:r>@@ -16735,8 +16750,8 @@                 </m:r>                 <m:r>                   <m:rPr>-                    <m:sty m:val="p" />                     <m:scr m:val="script" />+                    <m:sty m:val="p" />                   </m:rPr>                   <m:t>N</m:t>                 </m:r>@@ -17911,8 +17926,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>l</m:t>           </m:r>@@ -17924,8 +17939,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -17937,8 +17952,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>z</m:t>           </m:r>@@ -17950,8 +17965,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>y</m:t>           </m:r>@@ -17963,8 +17978,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>d</m:t>           </m:r>@@ -17976,8 +17991,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>o</m:t>           </m:r>@@ -17989,8 +18004,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>g</m:t>           </m:r>
test/writer/omml/miAtoken5.test view
@@ -116,8 +116,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -154,8 +154,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>
test/writer/omml/miSfonts8.test view
@@ -55,6 +55,9 @@       <m:t>+</m:t>     </m:r>     <m:r>+      <m:rPr>+        <m:sty m:val="p" />+      </m:rPr>       <m:t>Γ</m:t>     </m:r>     <m:r>
test/writer/omml/miequivalents11.test view
@@ -210,8 +210,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -239,8 +239,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -268,8 +268,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -288,8 +288,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -317,8 +317,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -337,8 +337,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -357,8 +357,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -377,8 +377,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -397,8 +397,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -417,8 +417,8 @@           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>
test/writer/omml/mimathvariant13.test view
@@ -201,8 +201,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -210,8 +210,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -219,8 +219,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -228,8 +228,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -237,8 +237,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -246,8 +246,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -255,8 +255,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -264,8 +264,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -273,8 +273,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -282,8 +282,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>a</m:t>           </m:r>@@ -335,8 +335,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -344,8 +344,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -353,8 +353,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -362,8 +362,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -371,8 +371,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -380,8 +380,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -389,8 +389,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -398,8 +398,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="i" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="i" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -407,8 +407,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="bi" />               <m:scr m:val="sans-serif" />+              <m:sty m:val="bi" />             </m:rPr>             <m:t>A</m:t>           </m:r>@@ -416,8 +416,8 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="monospace" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>A</m:t>           </m:r>
test/writer/omml/mimathvariant14.test view
@@ -63,15 +63,15 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>ABCDEFGHIJKLMNOPQRSTUVWXYZ</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="fraktur" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>abcdefghijklmnopqrstuvwxyz</m:t>           </m:r>@@ -81,15 +81,15 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>ABCDEFGHIJKLMNOPQRSTUVWXYZ</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="fraktur" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>abcdefghijklmnopqrstuvwxyz</m:t>           </m:r>@@ -99,15 +99,15 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>ABCDEFGHIJKLMNOPQRSTUVWXYZ</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="double-struck" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>abcdefghijklmnopqrstuvwxyz</m:t>           </m:r>@@ -117,15 +117,15 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>ABCDEFGHIJKLMNOPQRSTUVWXYZ</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="p" />               <m:scr m:val="script" />+              <m:sty m:val="p" />             </m:rPr>             <m:t>abcdefghijklmnopqrstuvwxyz</m:t>           </m:r>@@ -135,15 +135,15 @@         <m:e>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>ABCDEFGHIJKLMNOPQRSTUVWXYZ</m:t>           </m:r>           <m:r>             <m:rPr>-              <m:sty m:val="b" />               <m:scr m:val="script" />+              <m:sty m:val="b" />             </m:rPr>             <m:t>abcdefghijklmnopqrstuvwxyz</m:t>           </m:r>
test/writer/omml/schwinger_dyson.test view
@@ -81,8 +81,8 @@           <m:e>             <m:r>               <m:rPr>-                <m:sty m:val="p" />                 <m:scr m:val="script" />+                <m:sty m:val="p" />               </m:rPr>               <m:t>T</m:t>             </m:r>@@ -176,8 +176,8 @@           <m:e>             <m:r>               <m:rPr>-                <m:sty m:val="p" />                 <m:scr m:val="script" />+                <m:sty m:val="p" />               </m:rPr>               <m:t>T</m:t>             </m:r>
test/writer/omml/sphere_volume.test view
@@ -237,528 +237,509 @@       </m:rPr>       <m:t>}</m:t>     </m:r>-    <m:m>-      <m:mPr>-        <m:baseJc m:val="center" />-        <m:plcHide m:val="on" />-        <m:mcs>-          <m:mc>-            <m:mcPr>-              <m:mcJc m:val="right" />-              <m:count m:val="1" />-            </m:mcPr>-          </m:mc>-          <m:mc>-            <m:mcPr>-              <m:mcJc m:val="left" />-              <m:count m:val="1" />-            </m:mcPr>-          </m:mc>-        </m:mcs>-      </m:mPr>-      <m:mr>-        <m:e>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>V</m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>o</m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>l</m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>u</m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>m</m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>e</m:t>-          </m:r>-        </m:e>-        <m:e>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>=</m:t>-          </m:r>-          <m:nary>-            <m:naryPr>-              <m:chr m:val="∭" />-              <m:limLoc m:val="undOvr" />-              <m:subHide m:val="off" />-              <m:supHide m:val="on" />-            </m:naryPr>-            <m:sub>-              <m:r>-                <m:t>S</m:t>-              </m:r>-            </m:sub>-            <m:sup>-              <m:r>-                <m:t>&#8203;</m:t>-              </m:r>-            </m:sup>-            <m:e>-              <m:r>-                <m:t>&#8203;</m:t>-              </m:r>-            </m:e>-          </m:nary>-          <m:sSup>-            <m:e>-              <m:r>-                <m:t>ρ</m:t>-              </m:r>-            </m:e>-            <m:sup>-              <m:r>-                <m:t>2</m:t>-              </m:r>-            </m:sup>-          </m:sSup>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>sin</m:t>-          </m:r>-          <m:r>-            <m:t>θ</m:t>-          </m:r>-          <m:r>-            <m:t> </m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>d</m:t>-          </m:r>-          <m:r>-            <m:t>ρ</m:t>-          </m:r>-          <m:r>-            <m:t> </m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>d</m:t>-          </m:r>-          <m:r>-            <m:t>θ</m:t>-          </m:r>-          <m:r>-            <m:t> </m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>d</m:t>-          </m:r>-          <m:r>-            <m:t>ϕ</m:t>-          </m:r>-        </m:e>-      </m:mr>-      <m:mr>-        <m:e />-        <m:e>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>=</m:t>-          </m:r>-          <m:nary>-            <m:naryPr>-              <m:chr m:val="∫" />-              <m:limLoc m:val="subSup" />-              <m:subHide m:val="off" />-              <m:supHide m:val="off" />-            </m:naryPr>-            <m:sub>-              <m:r>-                <m:t>0</m:t>-              </m:r>-            </m:sub>-            <m:sup>-              <m:r>-                <m:t>2</m:t>-              </m:r>-              <m:r>-                <m:t>π</m:t>-              </m:r>-            </m:sup>-            <m:e>-              <m:r>-                <m:t>&#8203;</m:t>-              </m:r>-            </m:e>-          </m:nary>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>d</m:t>-          </m:r>-          <m:r>-            <m:t>ϕ</m:t>-          </m:r>-          <m:r>-            <m:t> </m:t>-          </m:r>-          <m:nary>-            <m:naryPr>-              <m:chr m:val="∫" />-              <m:limLoc m:val="subSup" />-              <m:subHide m:val="off" />-              <m:supHide m:val="off" />-            </m:naryPr>-            <m:sub>-              <m:r>-                <m:t>0</m:t>-              </m:r>-            </m:sub>-            <m:sup>-              <m:r>-                <m:t>π</m:t>-              </m:r>-            </m:sup>-            <m:e>-              <m:r>-                <m:t>&#8203;</m:t>-              </m:r>-            </m:e>-          </m:nary>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>sin</m:t>-          </m:r>-          <m:r>-            <m:t>θ</m:t>-          </m:r>-          <m:r>-            <m:t> </m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>d</m:t>-          </m:r>-          <m:r>-            <m:t>θ</m:t>-          </m:r>-          <m:r>-            <m:t> </m:t>-          </m:r>-          <m:nary>-            <m:naryPr>-              <m:chr m:val="∫" />-              <m:limLoc m:val="subSup" />-              <m:subHide m:val="off" />-              <m:supHide m:val="off" />-            </m:naryPr>-            <m:sub>-              <m:r>-                <m:t>0</m:t>-              </m:r>-            </m:sub>-            <m:sup>-              <m:r>-                <m:t>R</m:t>-              </m:r>-            </m:sup>-            <m:e>-              <m:r>-                <m:t>&#8203;</m:t>-              </m:r>-            </m:e>-          </m:nary>-          <m:sSup>-            <m:e>-              <m:r>-                <m:t>ρ</m:t>-              </m:r>-            </m:e>-            <m:sup>-              <m:r>-                <m:t>2</m:t>-              </m:r>-            </m:sup>-          </m:sSup>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>d</m:t>-          </m:r>-          <m:r>-            <m:t>ρ</m:t>-          </m:r>-        </m:e>-      </m:mr>-      <m:mr>-        <m:e />-        <m:e>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>=</m:t>-          </m:r>-          <m:r>-            <m:t>ϕ</m:t>-          </m:r>-          <m:sSubSup>-            <m:e>-              <m:r>-                <m:rPr>-                  <m:sty m:val="p" />-                </m:rPr>-                <m:t>|</m:t>-              </m:r>-            </m:e>-            <m:sub>-              <m:r>-                <m:t>0</m:t>-              </m:r>-            </m:sub>-            <m:sup>-              <m:r>-                <m:t>2</m:t>-              </m:r>-              <m:r>-                <m:t>π</m:t>-              </m:r>-            </m:sup>-          </m:sSubSup>-          <m:r>-            <m:t> </m:t>-          </m:r>-          <m:d>-            <m:dPr>-              <m:begChr m:val="(" />-              <m:sepChr m:val="" />-              <m:endChr m:val=")" />-              <m:grow />-            </m:dPr>-            <m:e>-              <m:r>-                <m:rPr>-                  <m:sty m:val="p" />-                </m:rPr>-                <m:t>−</m:t>-              </m:r>-              <m:r>-                <m:rPr>-                  <m:sty m:val="p" />-                </m:rPr>-                <m:t>cos</m:t>-              </m:r>-              <m:r>-                <m:t>θ</m:t>-              </m:r>-            </m:e>-          </m:d>-          <m:sSubSup>-            <m:e>-              <m:r>-                <m:rPr>-                  <m:sty m:val="p" />-                </m:rPr>-                <m:t>|</m:t>-              </m:r>-            </m:e>-            <m:sub>-              <m:r>-                <m:t>0</m:t>-              </m:r>-            </m:sub>-            <m:sup>-              <m:r>-                <m:t>π</m:t>-              </m:r>-            </m:sup>-          </m:sSubSup>-          <m:r>-            <m:t> </m:t>-          </m:r>-          <m:f>-            <m:fPr>-              <m:type m:val="lin" />-            </m:fPr>-            <m:num>-              <m:r>-                <m:t>1</m:t>-              </m:r>-            </m:num>-            <m:den>-              <m:r>-                <m:t>3</m:t>-              </m:r>-            </m:den>-          </m:f>-          <m:sSup>-            <m:e>-              <m:r>-                <m:t>ρ</m:t>-              </m:r>-            </m:e>-            <m:sup>-              <m:r>-                <m:t>3</m:t>-              </m:r>-            </m:sup>-          </m:sSup>-          <m:sSubSup>-            <m:e>-              <m:r>-                <m:rPr>-                  <m:sty m:val="p" />-                </m:rPr>-                <m:t>|</m:t>-              </m:r>-            </m:e>-            <m:sub>-              <m:r>-                <m:t>0</m:t>-              </m:r>-            </m:sub>-            <m:sup>-              <m:r>-                <m:t>R</m:t>-              </m:r>-            </m:sup>-          </m:sSubSup>-        </m:e>-      </m:mr>-      <m:mr>-        <m:e />-        <m:e>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>=</m:t>-          </m:r>-          <m:r>-            <m:t>2</m:t>-          </m:r>-          <m:r>-            <m:t>π</m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>×</m:t>-          </m:r>-          <m:r>-            <m:t>2</m:t>-          </m:r>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>×</m:t>-          </m:r>-          <m:f>-            <m:fPr>-              <m:type m:val="lin" />-            </m:fPr>-            <m:num>-              <m:r>-                <m:t>1</m:t>-              </m:r>-            </m:num>-            <m:den>-              <m:r>-                <m:t>3</m:t>-              </m:r>-            </m:den>-          </m:f>-          <m:sSup>-            <m:e>-              <m:r>-                <m:t>R</m:t>-              </m:r>-            </m:e>-            <m:sup>-              <m:r>-                <m:t>3</m:t>-              </m:r>-            </m:sup>-          </m:sSup>-        </m:e>-      </m:mr>-      <m:mr>-        <m:e />-        <m:e>-          <m:r>-            <m:rPr>-              <m:sty m:val="p" />-            </m:rPr>-            <m:t>=</m:t>-          </m:r>-          <m:f>-            <m:fPr>-              <m:type m:val="lin" />-            </m:fPr>-            <m:num>-              <m:r>-                <m:t>4</m:t>-              </m:r>-            </m:num>-            <m:den>-              <m:r>-                <m:t>3</m:t>-              </m:r>-            </m:den>-          </m:f>-          <m:r>-            <m:t>π</m:t>-          </m:r>-          <m:sSup>-            <m:e>-              <m:r>-                <m:t>R</m:t>-              </m:r>-            </m:e>-            <m:sup>-              <m:r>-                <m:t>3</m:t>-              </m:r>-            </m:sup>-          </m:sSup>-        </m:e>-      </m:mr>-    </m:m>+    <m:eqArr>+      <m:e>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>V</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>o</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>l</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>u</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>m</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>e</m:t>+        </m:r>+        <m:r>+          <m:t>&amp;</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>=</m:t>+        </m:r>+        <m:nary>+          <m:naryPr>+            <m:chr m:val="∭" />+            <m:limLoc m:val="undOvr" />+            <m:subHide m:val="off" />+            <m:supHide m:val="on" />+          </m:naryPr>+          <m:sub>+            <m:r>+              <m:t>S</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:t>&#8203;</m:t>+            </m:r>+          </m:sup>+          <m:e>+            <m:r>+              <m:t>&#8203;</m:t>+            </m:r>+          </m:e>+        </m:nary>+        <m:sSup>+          <m:e>+            <m:r>+              <m:t>ρ</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:t>2</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>sin</m:t>+        </m:r>+        <m:r>+          <m:t>θ</m:t>+        </m:r>+        <m:r>+          <m:t> </m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>d</m:t>+        </m:r>+        <m:r>+          <m:t>ρ</m:t>+        </m:r>+        <m:r>+          <m:t> </m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>d</m:t>+        </m:r>+        <m:r>+          <m:t>θ</m:t>+        </m:r>+        <m:r>+          <m:t> </m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>d</m:t>+        </m:r>+        <m:r>+          <m:t>ϕ</m:t>+        </m:r>+      </m:e>+      <m:e>+        <m:r>+          <m:t>&amp;</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>=</m:t>+        </m:r>+        <m:nary>+          <m:naryPr>+            <m:chr m:val="∫" />+            <m:limLoc m:val="subSup" />+            <m:subHide m:val="off" />+            <m:supHide m:val="off" />+          </m:naryPr>+          <m:sub>+            <m:r>+              <m:t>0</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:t>2</m:t>+            </m:r>+            <m:r>+              <m:t>π</m:t>+            </m:r>+          </m:sup>+          <m:e>+            <m:r>+              <m:t>&#8203;</m:t>+            </m:r>+          </m:e>+        </m:nary>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>d</m:t>+        </m:r>+        <m:r>+          <m:t>ϕ</m:t>+        </m:r>+        <m:r>+          <m:t> </m:t>+        </m:r>+        <m:nary>+          <m:naryPr>+            <m:chr m:val="∫" />+            <m:limLoc m:val="subSup" />+            <m:subHide m:val="off" />+            <m:supHide m:val="off" />+          </m:naryPr>+          <m:sub>+            <m:r>+              <m:t>0</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:t>π</m:t>+            </m:r>+          </m:sup>+          <m:e>+            <m:r>+              <m:t>&#8203;</m:t>+            </m:r>+          </m:e>+        </m:nary>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>sin</m:t>+        </m:r>+        <m:r>+          <m:t>θ</m:t>+        </m:r>+        <m:r>+          <m:t> </m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>d</m:t>+        </m:r>+        <m:r>+          <m:t>θ</m:t>+        </m:r>+        <m:r>+          <m:t> </m:t>+        </m:r>+        <m:nary>+          <m:naryPr>+            <m:chr m:val="∫" />+            <m:limLoc m:val="subSup" />+            <m:subHide m:val="off" />+            <m:supHide m:val="off" />+          </m:naryPr>+          <m:sub>+            <m:r>+              <m:t>0</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:t>R</m:t>+            </m:r>+          </m:sup>+          <m:e>+            <m:r>+              <m:t>&#8203;</m:t>+            </m:r>+          </m:e>+        </m:nary>+        <m:sSup>+          <m:e>+            <m:r>+              <m:t>ρ</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:t>2</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>d</m:t>+        </m:r>+        <m:r>+          <m:t>ρ</m:t>+        </m:r>+      </m:e>+      <m:e>+        <m:r>+          <m:t>&amp;</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>=</m:t>+        </m:r>+        <m:r>+          <m:t>ϕ</m:t>+        </m:r>+        <m:sSubSup>+          <m:e>+            <m:r>+              <m:rPr>+                <m:sty m:val="p" />+              </m:rPr>+              <m:t>|</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:t>0</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:t>2</m:t>+            </m:r>+            <m:r>+              <m:t>π</m:t>+            </m:r>+          </m:sup>+        </m:sSubSup>+        <m:r>+          <m:t> </m:t>+        </m:r>+        <m:d>+          <m:dPr>+            <m:begChr m:val="(" />+            <m:sepChr m:val="" />+            <m:endChr m:val=")" />+            <m:grow />+          </m:dPr>+          <m:e>+            <m:r>+              <m:rPr>+                <m:sty m:val="p" />+              </m:rPr>+              <m:t>−</m:t>+            </m:r>+            <m:r>+              <m:rPr>+                <m:sty m:val="p" />+              </m:rPr>+              <m:t>cos</m:t>+            </m:r>+            <m:r>+              <m:t>θ</m:t>+            </m:r>+          </m:e>+        </m:d>+        <m:sSubSup>+          <m:e>+            <m:r>+              <m:rPr>+                <m:sty m:val="p" />+              </m:rPr>+              <m:t>|</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:t>0</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:t>π</m:t>+            </m:r>+          </m:sup>+        </m:sSubSup>+        <m:r>+          <m:t> </m:t>+        </m:r>+        <m:f>+          <m:fPr>+            <m:type m:val="lin" />+          </m:fPr>+          <m:num>+            <m:r>+              <m:t>1</m:t>+            </m:r>+          </m:num>+          <m:den>+            <m:r>+              <m:t>3</m:t>+            </m:r>+          </m:den>+        </m:f>+        <m:sSup>+          <m:e>+            <m:r>+              <m:t>ρ</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:t>3</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+        <m:sSubSup>+          <m:e>+            <m:r>+              <m:rPr>+                <m:sty m:val="p" />+              </m:rPr>+              <m:t>|</m:t>+            </m:r>+          </m:e>+          <m:sub>+            <m:r>+              <m:t>0</m:t>+            </m:r>+          </m:sub>+          <m:sup>+            <m:r>+              <m:t>R</m:t>+            </m:r>+          </m:sup>+        </m:sSubSup>+      </m:e>+      <m:e>+        <m:r>+          <m:t>&amp;</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>=</m:t>+        </m:r>+        <m:r>+          <m:t>2</m:t>+        </m:r>+        <m:r>+          <m:t>π</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>×</m:t>+        </m:r>+        <m:r>+          <m:t>2</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>×</m:t>+        </m:r>+        <m:f>+          <m:fPr>+            <m:type m:val="lin" />+          </m:fPr>+          <m:num>+            <m:r>+              <m:t>1</m:t>+            </m:r>+          </m:num>+          <m:den>+            <m:r>+              <m:t>3</m:t>+            </m:r>+          </m:den>+        </m:f>+        <m:sSup>+          <m:e>+            <m:r>+              <m:t>R</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:t>3</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+      </m:e>+      <m:e>+        <m:r>+          <m:t>&amp;</m:t>+        </m:r>+        <m:r>+          <m:rPr>+            <m:sty m:val="p" />+          </m:rPr>+          <m:t>=</m:t>+        </m:r>+        <m:f>+          <m:fPr>+            <m:type m:val="lin" />+          </m:fPr>+          <m:num>+            <m:r>+              <m:t>4</m:t>+            </m:r>+          </m:num>+          <m:den>+            <m:r>+              <m:t>3</m:t>+            </m:r>+          </m:den>+        </m:f>+        <m:r>+          <m:t>π</m:t>+        </m:r>+        <m:sSup>+          <m:e>+            <m:r>+              <m:t>R</m:t>+            </m:r>+          </m:e>+          <m:sup>+            <m:r>+              <m:t>3</m:t>+            </m:r>+          </m:sup>+        </m:sSup>+      </m:e>+    </m:eqArr>   </m:oMath> </m:oMathPara>
test/writer/typst/primes1.test view
@@ -37,4 +37,4 @@ , ESuper (ESymbol Accent "'") (ESymbol Accent "'") ] >>> typst-x^2 + 2^2 + x^(') + x^(') + x^("''") + x' + x^(')^(') + x^(')^2 + x^(' +') + x^(')^(') + x^('^(')) +'^(') +'^(')+x^2 + 2^2 + x' + x^(') + x^("''") + x' + x^(')^(') + x^(')^2 + x^(' +') + x^(')^(') + x^('^(')) +'^(') +'^(')
test/writer/typst/primes2.test view
@@ -27,4 +27,4 @@ , ESuper (EIdentifier "H") (ESymbol Accent "\8279") ] >>> typst-H^(\") H^(') H^(\*) H^(`) H^ª H^degree H^(²) H^(³) H^acute H^(¹) H^º H^quote.l.single H^quote.r.single H^quote.low.single H^quote.high.single H^quote.l.double H^quote.r.double H^quote.low.double H^quote.high.double H^(') H^('') H^(''') H^prime.rev H^prime.double.rev H^prime.triple.rev H^('''')+H^(\") H^(') H^(\*) H^(`) H^ª H^degree H^(²) H^(³) H^acute H^(¹) H^º H^quote.l.single H^quote.r.single H^quote.low.single H^quote.high.single H^quote.l.double H^quote.r.double H^quote.low.double H^quote.high.double H' H^('') H^(''') H^prime.rev H^prime.double.rev H^prime.triple.rev H^('''')
texmath.cabal view
@@ -1,5 +1,5 @@ Name:                texmath-Version:             0.12.8.13+Version:             0.12.9 Cabal-Version:       >= 1.10 Build-type:          Simple Synopsis:            Conversion between math formats.@@ -34,8 +34,8 @@ Author:              John MacFarlane, Matthew Pickering Maintainer:          jgm@berkeley.edu Homepage:            http://github.com/jgm/texmath-Extra-source-files:  README.markdown-                     changelog+Extra-source-files:  README.md+                     changelog.md                      man/texmath.1.md                      man/Makefile                      man/man1/texmath.1@@ -61,7 +61,7 @@  Source-repository head   type:              git-  location:          git://github.com/jgm/texmath.git+  location:          https://github.com/jgm/texmath.git  Flag executable   description:       Compile test executable.