Commit graph

500 commits

Author SHA1 Message Date
physikerwelt 89e45815e8
Fix selenium tests
Update test to find MathML element instead of image.

This is required since the default in labs in now MathML.

Bug: T372872
Change-Id: I4e9500effaca9cef704f06ec003a0e01bdcfb3f1
2024-08-27 13:28:46 +02:00
Umherirrender 3e37c4e5a0 tests: Remove unused class properties from AllText
Change-Id: Id1864671a653777d6957593eddf65398eaad183b
2024-08-25 14:19:37 +02:00
thiemowmde 10e2e17bb1 Remove unused return values from MMLTestUtil
Just removing unused code that never did anything. Note this is only
in a test. As long as all tests still succeed this can't really cause
any problems, I believe.

Change-Id: I272803353eed9de0ecf98c55b75710df16da2c44
2024-08-12 08:50:22 +02:00
Fomafix 3f905c2747 Use $this->getServiceContainer() in maintenance
Change-Id: I723fa230e525970d7e7600dee37fbfae62911a49
2024-07-24 16:30:10 +00:00
Fomafix 363abd4afb Use overrideConfigValue instead of setMwGlobals
Change-Id: Id53db757cf0c2f0601cc34a9403edf3bbb1f7298
2024-07-24 16:22:59 +00:00
Umherirrender 049a747143 Use namespaced classes
Changes to the use statements done automatically via script
Addition of missing use statement done manually

Change-Id: Ifcc9113bc1d2cf79d21871abe7652d7ed8dde20a
2024-06-09 18:48:28 +02:00
Ed Sanders 39c15f76f9 build: Update eslint-config-wikimedia to 0.28.0 and autofix
Change-Id: I02045047af1f392ae6d6f08e422024b0e9386ccf
2024-06-07 15:24:08 +01:00
jenkins-bot e4ece5aa8c Merge "Add MathJax rendering option" 2024-06-06 15:13:38 +00:00
Moritz Schubotz (physikerwelt) f534146597
Implement hline support for matrix
In MathML outer table boarders are represented with the
notation attribute of an menclose element. The inner
boarders are represented by the rowlines attribute
of the mtable element. The rowline element accepts
a space seperated list of row boarders. In LaTeX
the bottom line is represented by a new matrix row
that only contains \hline.

This change discover \hline elements in matrix cells
and then determines if it is in the first or last line.
When it is in the last line, the line is removed to avoid
an empty <mtr /> in the output.

Bug: T366417
Change-Id: I196e0d14a183a63696363f9e3006cf65571dc56c
2024-06-03 19:15:43 +02:00
jenkins-bot 0c3c709b51 Merge "Clean matrix arguments" 2024-06-03 10:28:18 +00:00
Moritz Schubotz (physikerwelt) 5fa3d6bfe5 Clean matrix arguments
Originally the parse tree was a binary tree, from that
time matrix element were put into that data structure.
This was partially undone, but not full which leads to some artifacts
in matrix cells.

One of the problem is that due to the binary parse
tree structure the postprocessing did not correctly
identfy \limits.

This change changes reduces nesting from matrix, and regards
matrix instances as two-dimensional TexArrays.

Bug: T362344
Change-Id: I66a31a09f204709a51d6b5c9ecefc083f7ee2d6d
2024-06-03 09:25:15 +00:00
Moritz Schubotz (physikerwelt) 4da2778a29 LaTeXML: Remove SVG fallback images
Removes Fallback images for LaTeXML rendering

Change-Id: Id158de53b3f68f85fe55a3f7ace9abdc55c21160
2024-06-03 07:06:24 +00:00
jenkins-bot 024cdbb00f Merge "Make TexArray iterable" 2024-05-27 13:18:29 +00:00
Moritz Schubotz (physikerwelt) 9c13fd1ccd
Make TexArray iterable
TexArray is an array of tex nodes. To improve
readability and type hinting we make TexArray
iterable.

Change-Id: I5b9b2ca63400400bc399c08445ff911f8e20a0d1
2024-05-27 09:54:44 +02:00
Moritz Schubotz (physikerwelt) c0ac8ee0e7
Extend BaseParsing test coverage
Change-Id: I4e8ff663e1516bcdeb6133bb12391ad48b056367
2024-05-26 22:37:07 +02:00
Moritz Schubotz (physikerwelt) 277663b822 Add MathJax rendering option
When collecting user feedback regarding the native
rendering option on the German Wikipedia (T346795)
it became apparent that some power users aim for bigger
and bolder fonts and a more LaTeX-like layout.
MathML, however, aims to format math as an integral part
of the text with uniform fonts and spacing.

To match both user needs, this patch adds a new rendering
option that uses client-side MathJax (without a need for
restbase or mathoid).

* Adjust MathJax`s loader to be compatible with the mw loader
* Add new rendering mode
* Copy MathJax source to resource module as foreign repo

Bug: T354136
Change-Id: I1ecf9c77fefc3b0f717107d81979276023f6cb84
2024-05-24 03:30:05 +00:00
thiemowmde 71bd192002 Use native str_starts_with/str_contains and such where possible
Includes a few other smaller cleanups that aren't worth a separate
patch, in my opinion.

Change-Id: I42d6e70ef132bfc2cf606164e2e62becb1f915df
2024-04-19 20:48:34 +02:00
Moritz Schubotz (physikerwelt) a102a4ed52
Remove curly
To reduce the complexity of the parse tree we remove the curly
element which is used for grouping in TeX. Instead, we use
use an attribute which defines if the group is put into curly
brackets or not. The functionality of the curly element
is transferred to the TexArray which was the only possible
child of the curly element before. To ease the transition,
we add a special constructor to TexArray.

We could not measure any performance implications of this change.

Bug: T333973
Change-Id: Idcb58694022831113bdc437576bb9f48658fff2f
2024-04-09 11:36:34 +02:00
Moritz Schubotz (physikerwelt) 5f4cfc47bc Update test references
The LaTeXML reference variant seems to be generated
with a slightly different version than before

Bug: T354057
Change-Id: I3d51dc06664120a1c7f9a933d7328210b7c6817f
2024-04-08 17:14:44 +00:00
Moritz Schubotz (physikerwelt) 0f11a20d8f
Conditionally skip tests that depend on Wikibase
While investigating the dependency between
Math and Wikibase, it turned out there was
a hard dependency in the test code.

This change makes the availability of the Wikibase
Extension optional and conditionally skips tests.

Bug: T362027
Change-Id: I9401d7d4a3277b6923dcd81f411ac5a08f1242d2
2024-04-08 14:46:09 +02:00
Moritz Schubotz (physikerwelt) f3acb95ed4 Enable more tests
Change-Id: Ic260221963a83ddd9208f00e170609a5be537898
2024-04-06 11:20:03 +00:00
Moritz Schubotz (physikerwelt) 69e111c91f
Skip tests if testfiles are missing
Instead of failing tests, we skip tests if the reuqired files
are not there

Change-Id: If107bea4efb35d08597f6274ffee45f6e951bc38
2024-04-03 20:45:20 +02:00
Moritz Schubotz (physikerwelt) 8c4a60f08f Replace _s with -s in i18n math mode strings
Bug: T360176
Change-Id: Ibcadd60428d61afb34700455d4c2550f7e24cc43
2024-03-15 17:27:56 +00:00
Reedy 9ad81e9471 Fix casing of MediaWiki
Change-Id: Iaf9d68db0889620303ee01b9460dcfa9b9016c0f
2024-03-12 15:38:20 +00:00
Umherirrender 555ed8e29f build: Fix line indents
Change-Id: If3be1b7575a1570e425847f559821e7408e5ec24
2024-03-10 22:46:31 +01:00
Umherirrender 457b953dd0 build: Upgrade mediawiki/mediawiki-codesniffer to v43.0.0
Excluded Generic.WhiteSpace.ScopeIndent as
it impact many lines in switch/case syntax

Also disable BraceNotOnOwnLine due to T347440

Change-Id: Ia0c8072da9b7bff6a4010d3fb70cb0e576cdf98a
2024-03-10 22:16:48 +01:00
Umherirrender 0cefcd5d77 tests: Mock LoggerInterface to expect that a warning is thrown
Expecting E_ERROR and E_USER_ERROR is deprecated and will no longer be
possible in PHPUnit 10.

Bug: T342110
Change-Id: I713460ef62f1dbdf1332916965e833e7f9074e3c
2024-02-24 20:16:31 +01:00
Derick Alangi bc193d41a7
PreferencesIntegrationTest: CA will fail on null User objects
`$this->createMock( User::class )` will return a mock User object
with all fields defaulting to null and this will fail when the
`onGetPreferences()` hook fires in CA since that gets consumed by
`getFormDescriptor()` in PreferencesFactory.

This patch changes the mock user object to a test user object and
this is fine because it's already an integration test.

Bug: T357854
Change-Id: I3d80fc1e59ff00a1a08def41c53d82bc093b6e00
2024-02-19 13:21:40 +03:00
libraryupgrader f382be8562 build: Updating npm dependencies
npm:
* eslint-config-wikimedia: 0.25.1 → 0.26.0
* grunt-banana-checker: 0.11.0 → 0.11.1
* wdio-mediawiki: 2.1.0 → 2.5.0
* get-func-name: 2.0.0 → 2.0.2
  * https://github.com/advisories/GHSA-4q6p-r6v2-jvc5
* postcss: 8.4.30 → 8.4.35
  * https://github.com/advisories/GHSA-7fh5-64p2-3v2j

Change-Id: I5b01fa01c11a57a180b50bf2f8b3275e69d75f1c
2024-02-13 20:44:49 +00:00
Moritz Schubotz (physikerwelt) 8b481b45f1
Fix purging of cache in native mode
Adding action=purge to the url did not bypass cache
in native mode, because the check request was performed
before the purge information was passed.

* Move purge property to the base class
* Pass purge option via the checker constructor
* Add cache checking for mathoid checker
* Adjust method signatures accordingly

Change-Id: I6f545060ae72dac8b12fb0f85662c4048059b2e9
2024-02-05 20:56:19 +01:00
Moritz Schubotz (physikerwelt) f5b83c720c
Pass font options in underOver
Following the same argument as for accents,
font options should also be passed in underOver
constructs.

* Pass options
* Add test
* In I6924d712db6852f99d7896b1f11cfbd22851d757
  curly learned to encapsulate its output in a
  mrow. Thus, the if-clause is no longer needed.

Bug: T352609
Change-Id: I6dd3303d9b5ef9ae32ad33c91a4cc1bbdad46109
2024-01-29 17:11:10 +01:00
Moritz Schubotz (physikerwelt) d270a9aa80
Pass font options in accents
Accents such as \widetilde did not pass
their font options to their child element.

* Pass options
* Add test
* In I6924d712db6852f99d7896b1f11cfbd22851d757
  curly learned to encapsulate its output in a
  mrow. Thus, the if-clause is no longer needed.

Bug: T352609
Change-Id: I81ecda09d017c73a4593ae36c630426229c7559f
2024-01-27 18:12:03 +01:00
Moritz Schubotz (physikerwelt) 57dbaeda39
Add over_operators group
instead of testing if an operator starts
with the letter \o we keep an explicit
dictonary of operators which should
be rendered using mover instead of
msub.

Bug: T352699
Change-Id: I916acf2f71d747a31a882fecfccac832436ea991
2024-01-24 16:49:29 +01:00
ni1313 fbe057dc55 Add test for \overarc
Manually add test for \overarc to TexUtil-Ref.json

Bug: T354057
Change-Id: I249c89f9f7a2f336268393f61d428fbc09ee82f2
2024-01-17 16:29:36 +00:00
Moritz Schubotz (physikerwelt) 9236575a1a Remove explicit DB access
* Uses BagOfStuff caching instead of custom-made DB cache
* By configuring the BagOfStuff cache in a way that
  it writes to the database no performance implications are expected
* For WMF-use this should have no effect since restbase
  is used to cache stuff
* Replaces Ib2c216f54e6817ee2c3be0355ba72bd4769ba6ea

Bug: T349442
Change-Id: I1ce8ad9cf4c1a9ae71f447e4e067b39ee2601640
2024-01-11 15:57:02 +00:00
jenkins-bot 3a2011c3b7 Merge "Fix missing argument passing in DQ and FQ" 2024-01-06 21:43:41 +00:00
jenkins-bot 6ca717d31d Merge "Improve operator recognition heuristic" 2024-01-06 21:24:06 +00:00
Umherirrender b97ef597e0 Use namespaced classes
Changes to the use statements done automatically via script
Addition of missing use statement done manually

Change-Id: I8fad94b215664fb77acf8cd8140232271d2c2837
2024-01-06 16:30:26 +01:00
Moritz Schubotz (physikerwelt) a512710cf0
Improve operator recognition heuristic
In TeX display math mode \sum_a^b is rendered as
munderover, however \alpha_a^b is redndered as
msubsup.

This changes improves the heuristics to differentiate
between munderover operators such as sum prod and
other macros such as alpha, beta ...

Bug: T352697
Change-Id: I5a993e379791edeb3623171265e5be2651ee1359
2024-01-03 00:17:47 +01:00
Moritz Schubotz (physikerwelt) d25acea9c7
Fix missing argument passing in DQ and FQ
When rendering subscripts font arguments such as upright
font were not passed to the child nodes.

This changes passes the parameters.

Bug: T353340
Change-Id: I487bb01afa0d64c809affc4b8a466337d71a1c76
2024-01-02 20:36:49 +01:00
Stegmujo 4b30c9701a Add Intent to WikiTexVC
* make intent annotations possible in TeX math items
* introduce a new command to annotate as well as node and translation
* Adds a parser expression grammar to validate intent attributes for
* it basically adds the previous, now abandoned changeset: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Math/+/949964

Bug: T327098

Change-Id: I21adfac4c3580e238f059721fdf0c1566cb4e857
2023-12-21 14:28:18 +00:00
Stegmujo c27bc62ee7
Add export function for RTED
* for evaluation
* formats to bracket format as used in RTED java application

Change-Id: Ia85b7fdac55a9acfbc48e266a189e733634752f9
2023-12-07 17:27:19 +01:00
Stegmujo 3d0dfe1e43
Fix mathcal in chrome
* map to unicode chars

Bug: T352536
Change-Id: Iab04043df5cc04484d348b0c896a50c94ef79c16
2023-12-01 21:08:31 +01:00
Stegmujo 001e11bd7a
Fix double-struck letters in chrome
* map to literals to corresponding unicode characters when a double-struck state is recognized

Bug: T352196
Change-Id: I9b9e1d87c10858789751cd14f23d2feea3b928dd
2023-12-01 15:16:41 +01:00
Stegmujo c8fe00bd59
Fix closing bracket size too big
* fixes a glitch that attributes are not merged in closing tags

Bug: T351907
Change-Id: I1cc52c7726b12e12aea6cb56849721ae14229245
2023-11-30 15:58:22 +01:00
Stegmujo 79a2bf7e9f
Activate all FullCoverage Tests
Bug: T327392
Change-Id: I3af0c3c3aec83b8e0666318bdacbc1b639f8cd99
2023-11-30 12:21:50 +01:00
Stegmujo 3f5ba225ed Fix issue with nolimits
* nolimits is now also translated

Bug: T351850
Change-Id: I57d4bb4db117be667a5104876bfbd84a72e6bc34
2023-11-30 09:21:10 +00:00
Stegmujo a82727f61f
Rename TexVC in PHP to WikiTexVC
Change-Id: Idd98205ea291640b01946374f15c807da7fc26e5
2023-11-24 16:41:30 +01:00
Stegmujo 9abb258422
Fix genFrac bracket sizes
* genFrac renderMML function with bracket can produce false stretching
  on Chrome
* fixed for the cases with brackets (dbinom, tbinom, binom)

Bug: T350735
Change-Id: I0939de86963fa9c226346ce15e7edf7fc4e83c68
2023-11-20 16:32:44 +01:00
Stegmujo a4c3a365af Make distinction of bracket sizes
* \bigl( \Bigl( \biggl( \Biggl(

Bug: T350738
Change-Id: I557e6ff78255d0de28df1d6f6b6e78b76f9d8388
2023-11-17 15:54:10 +00:00
Stegmujo 7b03a170db
Fix liminf and limsup spacing
* and injlim projlim spacing

Bug: T350491
Change-Id: I7e4491fbdd461a4583f5418ba1924c647bb2df94
2023-11-03 18:37:27 +01:00
Stegmujo ac1d7a9a7b
Fix calls to trim null
Bug: T348936
Change-Id: I6e3fca041fb81975b175977b9a18d69fbf58620b
2023-11-03 17:02:22 +01:00
jenkins-bot 606f4347d1 Merge "Append invisible apply character" 2023-10-31 19:22:01 +00:00
Stegmujo 2c81f052c7
Append invisible apply character
* to named functions and named operators
* You can consider using that invisible apply character (U+2061) after other function names with known arguments (such as \sin, \cos...). Some accessibility tools take advantage of it, I am told, but it may also be used to provide correct spacing from the MathML operator dictionary. In Chrome <mi>sin</mi><mi>a</mi> will show up with no added spacing as sina, which is not ideal.

* namedFct with any succeeding macros/characters have an apply function

Bug : T350021

Change-Id: I7ee5fdd580fb018bc108a32500c17914dd5dc05f
2023-10-31 16:33:15 +01:00
jenkins-bot 83835f19e7 Merge "Add a possibility for creating a test wikipage for chemical formulas" 2023-10-30 16:22:48 +00:00
Moritz Schubotz (physikerwelt) bd474256a6 Remove functional dead code about PNG images
* PNG images are no longer displayed as of
  I595926027433182cc0396570bc3f1ce0cd2cafb3
* Remove functional dead code about PNG images
* Replace some type hints with type delcarations

Bug: T311620
Change-Id: I283c23e327ef908cfb4c827599fdcdb16252b08c
2023-10-30 10:46:08 +00:00
jenkins-bot 9ba97826f4 Merge "Fix incorrect child count of some element" 2023-10-27 14:00:30 +00:00
Stegmujo 9e9ba0241a Fix incorrect child count of some element
- munder: if only one child munder is not added as wrapping mml tag
- msup: renders an empty mi if there is no content for the superscript

This prevents some warnings in firefox browser dev-console.

Bug: T349825
Change-Id: Ia5efc1f33e3368e71527153d56160eee4ba3a46d
2023-10-27 13:17:55 +00:00
jenkins-bot 413b21d3be Merge "Remove too many rows in smallmatrix" 2023-10-27 10:53:49 +00:00
Stegmujo a53a5d58c8
Remove too many rows in smallmatrix
* From Feedback: The {smallmatrix} example has its fences wrapped in too many mrows I think, so it renders without stretching them in both Firefox and Chrome. Ideally you should be able to emit the <mo>(</mo> followed directly by an <mtable>, and trailed by <mo>)</mo>, and only wrap those 3 into a parent <mrow>.
* removes mrows and adds OPEN / CLOSE attributes
* tests MMLFullcoverage 194 to ~196 which cover the bigXYZ macros look
  ok

Bug: T348971
Change-Id: Ie444e5bb3e3f87fac915d2692b69e976d721582e
2023-10-27 11:19:06 +02:00
Stegmujo 8112c65a5d
Remove mstyle around spacing elements
* From Feedback: There is a curious use of <mstyle> around spacing elements, as in <mstyle scriptlevel="0"><mspace width="-0.167em"></mspace></mstyle>. I am not sure that wrapper element is needed? The mspace ought to be successful standalone.
* this is in the 'bmod' case

Bug: T349822
Change-Id: I9229ad73891d5000679761d3d4b2028d4a51ddf1
2023-10-27 10:35:59 +02:00
jenkins-bot 30c156a0a8 Merge "Make dataProvider in EnWikiFormulaeTest static" 2023-10-22 13:24:30 +00:00
jenkins-bot 9706ed33ba Merge "Make dataProvider in PopupTest static" 2023-10-22 05:02:42 +00:00
Moritz Schubotz (physikerwelt) de2913d960
Make dataProvider in EnWikiFormulaeTest static
Bug: T337160
Change-Id: I71205d564a3063e834a3cd0fc0075a3a6b7a19d2
2023-10-22 06:59:38 +02:00
Moritz Schubotz (physikerwelt) 7965a91ae5 Make dataProvider in PopupTest static
Bug: T337160
Change-Id: I1c5384d319d9e34397ed4d94b4d9888d46722b91
2023-10-21 21:06:06 +00:00
Moritz Schubotz (physikerwelt) 70ea8e0c88 Make dataProvider in MathWikibaseConnectorTest static
Bug: T337160
Change-Id: Idf24afec194b3bdf01dfcde0b9cac48faae2bb4d
2023-10-21 21:05:42 +00:00
Stegmujo 4750c45e06 Add a possibility for creating a test wikipage for chemical formulas
Bug: T329620
Change-Id: I5ca17dceb53bbf8ff148922088b2ba235d69e09a
2023-10-19 17:28:13 +00:00
Stegmujo 24bcd11e5b Fix ce statements and displaystyle for chem rendering on wikipages
* rollback some previous changes for ce env in Parserhookhandler
* some minor fixes for feedback in previous commit
* set tex mode for mhchem preprocessor, since MediaWiki Hooks add
  explicit ce tags: i.e. frormula coming to TexVC look like
  "{\displaystyle \ce{ C6H5-CHO }}"

Bug: T348975
Change-Id: Id06852b030f9ea77f016289d4f9e2258d5a9f0d4
2023-10-17 14:37:25 +00:00
Stegmujo 9360ca94c4
Fix table alignment to left
* currently, \begin{align} generates <mtable columnalign="right" but it should be <mtable columnalign="left"

Bug: T348791
Change-Id: Ic0df45aba4fdb6ffbdc790b5e4bc56e7daeca802
2023-10-13 15:08:34 +02:00
Stegmujo 1aae7cde53
Deactivate stretchy attribute in left and right
Bug: T348793
Change-Id: I5c7c1fd02c4fb42eb8478b744fea3dd06463401e
2023-10-13 13:58:57 +02:00
Stegmujo 00f47e8866 Fix issues in MMLmhchemTest with braces and macro longrightleftharpoons
* updating the braces since mkern, mskip etc are Fun1 functions in TexVC
* updating TexVC support flag in test
* added macro longrightleftharpoons to rendered cases
* nearly all tests render correct in HTML now

Bug: T329620
Change-Id: I78da466c88d41f794e81f7222c9a67c3f4d482d2
2023-10-12 15:55:43 +00:00
Stegmujo b26a8805c1
Add rendering to MathmL visual results to MathMLTest
* fix maintenance script in parametrization for generating correct
  reference MathML
* update MathML references for MMLmhchemTest
* and update the reference formulas, which not display MathML correctly
* tests which have math enviroment switch (which is currently not defined) are currently skipped

Bug: T329620
Change-Id: I09f2c393880daa8fef3e2763821df59048c3c98c
2023-10-12 14:36:57 +02:00
Stegmujo 846edd1611 Add intbar and intBar to MathML rendering
* added some tests
* removing intbar from skipped tests in MMLGenTexUtilTest

Bug: T348318
Bug: T137787
Change-Id: If0dd9beb36d52bc5305fdb66438f1ad2ca092aaf
2023-10-10 10:19:45 +00:00
Moritz Schubotz (physikerwelt) 272f39ca2d
Fix integral command namings
* Remove \strokeint which was probably a typo and should be \strokedint
* Add \intBar command

Not done:
* Implement rendering of \intBar and \intbar, it would make sense to wait for
the mathoid reference rending here, which is just around the corner

Bug: T137787
Bug: T348373
Change-Id: I19d24fc23f59dda87c7c39a265f17efddb9fee8f
2023-10-09 15:02:46 +02:00
Stegmujo f4c91856bc
Refine skipped indices in MMLGenerationTexUtilTest
* adapts skipped indices to represent all supported cmds and macros

Bug: T340024
Change-Id: Ib01f02c3b73dac80ee9878c22549740d728bdf57
2023-10-06 14:02:43 +02:00
jenkins-bot d5c48b8260 Merge "Render MathML for atop and choose" 2023-10-05 16:20:25 +00:00
Stegmujo bbe6c3df8b Render MathML for atop and choose
Bug: T340024
Change-Id: I19f471645b569db49a64e5dd4c82cfdbac7dbe77
2023-10-05 14:39:04 +00:00
Stegmujo d3c636883a
Render MathML for some letters used in mhchem
* \Alpha  \Beta  \Chi  \Epsilon  \Eta  \Iota  \Kappa  \Mu  \Nu  \Omicron  \Rho  \Tau  \Zeta
* \ca

Bug: T340024
Change-Id: I0d9d8314644927ccae0794ae8459a3f3893fc24a
2023-10-05 16:08:13 +02:00
Stegmujo 7dfb557b92
Render MathML for harpoons and arrows for mhchem
* macros: longRightleftharpoons, longLeftrightharpoons,
  longleftrightarrows
* added tests for these

Bug: T340024
Change-Id: Ib8487f242766cef63f7cf8564f2033d9f332e0a8
2023-10-04 18:47:14 +02:00
Stegmujo 0c493bbbed Render MathML for tripledash for mhchem
* rendering textemdash for tripledash with unicode +2014

Bug: T340024
Change-Id: I2c68858063d7fe4e1d673522f6a2d58107fa3f7e
2023-10-04 13:04:17 +00:00
Stegmujo 372bf72acd Render MathML for mathchoice for mhchem
* defaults mathchoice to displaystyle
* adds several tests and introduces new Fun4 element for mathchoice in
  grammar

Bug: T340024
Change-Id: I37c8fd35303e3b8a00faad18a3a131a716c7bb47
2023-10-04 11:23:02 +00:00
jenkins-bot a801869ebb Merge "Add mhchem-tex macros to MMLGenerationTexUtilTest" 2023-10-04 11:05:14 +00:00
Stegmujo 759e6166f6
Add mhchem-tex macros to MMLGenerationTexUtilTest
* adds the recently implemented cases for mhchem specific tex to check full macro coverage
* fix a minor issue with tripledash

Change-Id: Id3033fab7b3c3432bed6e11f7b50f7ff8e3906ea
2023-10-04 10:57:12 +02:00
jenkins-bot f15dd203ab Merge "Fix tilde spacing" 2023-09-29 11:48:36 +00:00
Stegmujo 414295cdc5
Fix tilde spacing
* tilde is rendered as non escaped mspace

Bug: T315978
Change-Id: I33a751eb5ae62a45c7bc3941ff49f30fa436b00c
2023-09-29 12:19:28 +02:00
jenkins-bot 5dd7d8cba3 Merge "Fix alignments" 2023-09-28 17:13:32 +00:00
Stegmujo 6c43c7563c Fix escape spacing
* In test "\text{if}~n\ \text{is even} "

Bug: T315978
Change-Id: I839b7e912bc95abff1f589467c848fc8b2fb0fe6
2023-09-28 15:54:19 +00:00
Stegmujo 07f7942ac5 Fix alignments
*  "\ln c, \lg d = \log e, \log_{10} f" : c d etc should have be more extra space
* "\Pr j, \hom l, \lVert z \rVert, \arg z ": same as above, specifically for \hom
* fixes expected result in LocalCheckerTest

Bug: T315978
Change-Id: I842b45b2d20dc267d828dca2040a3500ce06f45d
2023-09-28 15:48:18 +00:00
thiemowmde b4290c1634 Make use of upstream assertStatusGood/Error and such
These small convenience methods produce much better debug output.

Change-Id: I80d6f406c1605ed68eca8ec576ff98e7251da518
2023-09-28 15:15:43 +00:00
Stegmujo 093ecf7c0f
Fix bigcap and bigcup scripts not placed correctly
* All recognized macros are in category nullary macros, so this adds a
  rule
* In test "\bigcap_{i=_1}^n E_i"
* In test "\bigcup_{i=_1}^n E_i"

Bug: T315978
Change-Id: I09287879c1448e404473891985457349a62554a7
2023-09-27 14:17:53 +02:00
Stegmujo b3545c1994
Fix negation (not) for operatorname
* Test example in MathNativeTests: " "\not\operatorname{R}"
* fixed forwarding state in Fun1nb

Bug: T315978
Change-Id: Ia651b14ba16f39cc8cbc6b42e0598d959bf72989
2023-09-27 10:39:27 +02:00
Stegmujo ede31d01ed Fix k=1 should appear under sum in displaystyle
* In test MathNativeTests: "\sum_{k=1}^N k^2"
* also verify that textstyle variant works correctly

Bug: T315978
Change-Id: I8f6cd5ef1e4539616439542184cb7d9dc5cf2363
2023-09-26 16:07:20 +00:00
Stegmujo f85fda42da Fix MMLGenerationParserTest creating HTML file
* also fixes a warning in phan that there is a tainted parameter in args in BaseParsing
* this is to pass CI

Bug: T343636
Bug: T347320
Change-Id: I91328bf26e208bd4e0e939c4628def2f40e2f0b6
2023-09-26 15:26:30 +00:00
Stegmujo 5536b3f74a Fix underbrace
* In test MathNativeTests: "\underbrace{ a+b+\cdots+z }_{26}"
* Underbrace statement appear to right side

Bug: T315978
Change-Id: I3b1e1290ac07e7aa70ab5931d513984f011d3075
2023-09-21 14:57:40 +00:00
Stegmujo 586d15b046 Fix Pilcrow size
* Pilcrow was very big, see test on MatTestNative page:
* " \amalg \P \S \% \dagger \ddagger \ldots \cdots "
* and add specific testcase

Bug : T315978

Change-Id: I3074f3782ef821e7f9813b79a570bbd51ead28db
2023-09-21 10:28:31 +00:00
Stegmujo 83db0738b3 Fix rendering of "<" and ">" in MathML
Bug: T346731

Change-Id: I1f163dad73481664a336f09bc5608aad6d0b5761
2023-09-19 10:32:09 +00:00
Stegmujo b28d3da95a
Render MathML for smash command from texified mhchem
Bug: T340024
Change-Id: Id9ca073b51656dce2f48cef6c94a2281fe269418
2023-09-19 10:27:28 +02:00
Stegmujo ead9760e1f Render MathML for cmds: raise,lower,rlap,llap from texified mhchem
Bug: T340024

Change-Id: I9b3981c97b8158685ccc774f8435f7f1b36a42f2
2023-09-17 09:54:32 +00:00
Stegmujo cedca8b14e
Render MathML for mskip and mkern from texified mhchem
Bug: T340024

Change-Id: I2f9e0bbb98f33d6269009248861e4573dc9e6911
2023-09-17 10:16:39 +02:00
Stegmujo 6514c9d24e
Implement mhchemParser in PHP
* mhchemParser v4.2.2 in Typescript was used as blueprint for this:
* https://github.com/mhchem/mhchemParser
* The mhchemParserPHP component tests can be run locally on a machine with PHP without MediaWiki-Environment with the MMLmhchemTestLocal.php
* For the tests it is probably only necessary to review the json files (Mhchemv4mml.json, Mhchemv4tex.json).
* src/TexVC/MHChem/MhchemParser.php contains the basic functionality, Patterns, StateMachines, Texify functions are located in dedicated classes
* added extracted mhchem commands which have intermediately have been introduced to the
  texVC(PHP) grammar

Change-Id: I8cc3d04937b93339e352adc95c85a8a178b8825f
Bug: T329620
2023-09-16 09:40:14 +02:00