From 07f7942ac5199d8b22cf87e1ebef31dd4d199ba7 Mon Sep 17 00:00:00 2001 From: Stegmujo Date: Thu, 28 Sep 2023 13:31:00 +0000 Subject: [PATCH] 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 --- src/TexVC/Nodes/Literal.php | 5 +++++ tests/phpunit/InputCheck/LocalCheckerTest.php | 2 +- tests/phpunit/unit/TexVC/MMLRenderTest.php | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/TexVC/Nodes/Literal.php b/src/TexVC/Nodes/Literal.php index a734d3c7a..1751a8ed8 100644 --- a/src/TexVC/Nodes/Literal.php +++ b/src/TexVC/Nodes/Literal.php @@ -30,6 +30,11 @@ class Literal extends TexNode { } public function renderMML( $arguments = [], $state = [] ) { + if ( $this->arg === " " ) { + // Fixes https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Math/+/961711 + // And they creation of empty mo elements. + return ""; + } if ( is_numeric( $this->arg ) ) { $mn = new MMLmn( "", $arguments ); return $mn->encapsulateRaw( $this->arg ); diff --git a/tests/phpunit/InputCheck/LocalCheckerTest.php b/tests/phpunit/InputCheck/LocalCheckerTest.php index 2187cdee7..4325d0630 100644 --- a/tests/phpunit/InputCheck/LocalCheckerTest.php +++ b/tests/phpunit/InputCheck/LocalCheckerTest.php @@ -117,7 +117,7 @@ class LocalCheckerTest extends MediaWikiIntegrationTestCase { public function testRunChecks() { $fakeContent = [ 'status' => '+', - 'mathml' => 'sinx2', + 'mathml' => 'sinx2', 'output' => '\\sin x^{2}' ]; $checker = new LocalChecker( WANObjectCache::newEmpty(), '\sin x^2', 'tex' ); diff --git a/tests/phpunit/unit/TexVC/MMLRenderTest.php b/tests/phpunit/unit/TexVC/MMLRenderTest.php index 947295cf3..f86aeba06 100644 --- a/tests/phpunit/unit/TexVC/MMLRenderTest.php +++ b/tests/phpunit/unit/TexVC/MMLRenderTest.php @@ -26,6 +26,13 @@ class MMLRenderTest extends MediaWikiUnitTestCase { $this->assertStringContainsString( "munderover", $mathMLtexVC ); } + public function testScriptAlignment() { + $input = "\log_{10} f"; + $mathMLtexVC = $this->generateMML( $input ); + $this->assertStringNotContainsString( "", $mathMLtexVC ); + $this->assertStringContainsString( "", $mathMLtexVC ); + } + public function testNotOperatorname() { $input = "\\not\operatorname{R}"; $mathMLtexVC = $this->generateMML( $input );