* Wed Dec 13 2023 psimons@suse.com
- Update texmath to version 0.12.8.6.
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).
* Tue May 31 2022 psimons@suse.com
- Update texmath to version 0.12.5.1.
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.
* Sat Apr 02 2022 psimons@suse.com
- Update texmath to version 0.12.5.
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.
* Wed Jan 12 2022 psimons@suse.com
- Update texmath to version 0.12.4.
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).
* Thu Dec 17 2020 mimi.vx@gmail.com
- disable %{ix86} build
* Tue Aug 18 2020 psimons@suse.com
- Replace %setup -q with the more modern %autosetup macro.
* Tue Jul 21 2020 normand@linux.vnet.ibm.com
- Add _constraints for PowerPC avoid "no space left on device" build error
* Tue Jun 16 2020 psimons@suse.com
- Re-generate file with latest version of spec-cleaner.
* Fri Nov 08 2019 psimons@suse.com
- Drop obsolete group attributes.
Version: 0.12.4-bp154.1.15
* Wed Jan 12 2022 Peter Simons <psimons@suse.com>
- Update texmath to version 0.12.4.
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).
* Mon Nov 01 2021 psimons@suse.com
- Update texmath to version 0.12.3.2.
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.
* Mon Aug 16 2021 psimons@suse.com
- Update texmath to version 0.12.3.1.
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.
* Thu May 13 2021 psimons@suse.com
- Update texmath to version 0.12.3.
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).
* Tue Mar 16 2021 psimons@suse.com
- Update texmath to version 0.12.2.
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.
* Mon Feb 08 2021 psimons@suse.com
- Update texmath to version 0.12.1.1.
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).
* Tue Dec 29 2020 psimons@suse.com
- Update texmath to version 0.12.1.
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).
* Thu Dec 17 2020 Ond?ej Súkup <mimi.vx@gmail.com>
- disable %{ix86} build
* Tue Sep 22 2020 psimons@suse.com
- Update texmath to version 0.12.0.3.
texmath (0.12.0.3)
* Allow pandoc-types 1.22.
* Tue Aug 18 2020 Peter Simons <psimons@suse.com>
- Replace %setup -q with the more modern %autosetup macro.
* Tue Jul 21 2020 Michel Normand <normand@linux.vnet.ibm.com>
- Add _constraints for PowerPC avoid "no space left on device" build error
* Tue Jun 16 2020 Peter Simons <psimons@suse.com>
- Re-generate file with latest version of spec-cleaner.
Version: 0.12.0.2-bp152.1.4
* Wed May 06 2020 psimons@suse.com
- Update texmath to version 0.12.0.2.
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).
* Thu Feb 27 2020 psimons@suse.com
- Update texmath to version 0.12.0.1.
texmath (0.12.0.1)
* OMML writer: Fix overline and accent rendering (#152).
* OMML reader: Fix dropped arrows (#153). Add tests.
* Wed Nov 13 2019 psimons@suse.com
- Update texmath to version 0.12.
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).
* Fri Nov 08 2019 Peter Simons <psimons@suse.com>
- Drop obsolete group attributes.
* Sat Oct 05 2019 psimons@suse.com
- Update texmath to version 0.11.3.
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.
* Wed Sep 25 2019 psimons@suse.com
- Update texmath to version 0.11.2.3.
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.
* Sat Mar 09 2019 psimons@suse.com
- Update texmath to version 0.11.2.2.
texmath (0.11.2.2)
* OMML writer: use m:nor for normal text (#135).
* Sun Mar 03 2019 psimons@suse.com
- Update texmath to version 0.11.2.1.
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.
Version: 0.11.2-bp151.1.7
* Fri Feb 01 2019 psimons@suse.com
- Update texmath to version 0.11.2.
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.
* Mon Oct 29 2018 psimons@suse.com
- Update texmath to version 0.11.1.2.
texmath (0.11.1.2)
* Eqn writer: properly escape `{` and `}`.
* Set more accurate bounds (Herbert Valerio Riedel).
* Thu Oct 04 2018 psimons@suse.com
- Update texmath to version 0.11.1.1.
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}`.
* Wed Jul 18 2018 psimons@suse.com
- Cosmetic: replace tabs with blanks, strip trailing white space,
and update copyright headers with spec-cleaner.
* Fri Jul 13 2018 psimons@suse.com
- Update texmath to version 0.11.0.1.
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.
* Mon May 14 2018 psimons@suse.com
- Update texmath to version 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}`.
* eqn writer: use uppercase letters in unicode escapes (jgm/pandoc#4597).
* Handle multicharacter operators better in Eqn, TeX, OMML (#109).
* OMML reader: unwrap `<w:...>` tags immediately under `<m:oMath>`
(#111, Jesse Rosenthal).
* 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).
* 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.
* Update tests that should have been updated for 0.9.4.3.
* MathML writer: put linethickness attribute directly on mfrac
element. This fixes binomial rendering.
* Pandoc writer: better handle accented characters (jgm/pandoc#3922).