Skip to content

Commit 3388a91

Browse files
committed
MathML writer: fix handling of italic.
This improves on the earlier reverted fix to #280. Also adds a regression test.
1 parent 5f316d2 commit 3388a91

File tree

7 files changed

+51
-34
lines changed

7 files changed

+51
-34
lines changed

src/Text/TeXMath/Writers/MathML.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ where
2626

2727
import Text.XML.Light
2828
import Text.TeXMath.Types
29-
import Text.TeXMath.Unicode.ToUnicode
3029
import Data.Generics (everywhere, mkT)
3130
import Text.TeXMath.Shared (getMMLType, handleDownup,
3231
isUppercaseGreek, isRLSequence)
@@ -196,6 +195,11 @@ showExp tt e =
196195
else tunode elname t
197196
Just TextNormal -> withAttribute "mathvariant" "normal" $
198197
tunode elname t
198+
Just TextBold
199+
| elname == "mi" && not (isUppercaseGreek t) -- #255, #280
200+
-> withAttribute "mathvariant" "bold-italic" $ tunode elname t
201+
| otherwise
202+
-> withAttribute "mathvariant" "bold" $ tunode elname t
199203
Just textStyle -> withAttribute "mathvariant" (getMMLType textStyle) $
200204
tunode elname t
201205
in case e of

test/regression/280.test

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<<< tex
2+
\boldsymbol{\Gamma + b + \alpha}
3+
>>> mml
4+
<?xml version='1.0' ?>
5+
<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
6+
<mrow>
7+
<mi mathvariant="bold">Γ</mi>
8+
<mo mathvariant="bold">+</mo>
9+
<mi mathvariant="bold-italic">b</mi>
10+
<mo mathvariant="bold">+</mo>
11+
<mi mathvariant="bold-italic">α</mi>
12+
</mrow>
13+
</math>

test/writer/mml/22.test

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -313,12 +313,12 @@
313313
</mtd>
314314
<mtd columnalign="left" style="text-align: left">
315315
<mrow>
316-
<mi mathvariant="bold">A</mi>
317-
<mi mathvariant="bold">B</mi>
318-
<mi mathvariant="bold">C</mi>
319-
<mi mathvariant="bold">a</mi>
320-
<mi mathvariant="bold">b</mi>
321-
<mi mathvariant="bold">c</mi>
316+
<mi mathvariant="bold-italic">A</mi>
317+
<mi mathvariant="bold-italic">B</mi>
318+
<mi mathvariant="bold-italic">C</mi>
319+
<mi mathvariant="bold-italic">a</mi>
320+
<mi mathvariant="bold-italic">b</mi>
321+
<mi mathvariant="bold-italic">c</mi>
322322
</mrow>
323323
</mtd>
324324
</mtr>
@@ -328,12 +328,12 @@
328328
</mtd>
329329
<mtd columnalign="left" style="text-align: left">
330330
<mrow>
331-
<mi mathvariant="bold">A</mi>
332-
<mi mathvariant="bold">B</mi>
333-
<mi mathvariant="bold">C</mi>
334-
<mi mathvariant="bold">a</mi>
335-
<mi mathvariant="bold">b</mi>
336-
<mi mathvariant="bold">c</mi>
331+
<mi mathvariant="bold-italic">A</mi>
332+
<mi mathvariant="bold-italic">B</mi>
333+
<mi mathvariant="bold-italic">C</mi>
334+
<mi mathvariant="bold-italic">a</mi>
335+
<mi mathvariant="bold-italic">b</mi>
336+
<mi mathvariant="bold-italic">c</mi>
337337
</mrow>
338338
</mtd>
339339
</mtr>

test/writer/mml/binomial_coefficient.test

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<?xml version='1.0' ?>
4444
<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
4545
<mrow>
46-
<mi mathvariant="bold">C</mi>
46+
<mi mathvariant="bold-italic">C</mi>
4747
<mrow>
4848
<mo stretchy="true" form="prefix">(</mo>
4949
<mi>n</mi>
@@ -53,7 +53,7 @@
5353
</mrow>
5454
<mo>=</mo>
5555
<msubsup>
56-
<mi mathvariant="bold">C</mi>
56+
<mi mathvariant="bold-italic">C</mi>
5757
<mi>k</mi>
5858
<mi>n</mi>
5959
</msubsup>
@@ -63,7 +63,7 @@
6363
<mi>n</mi>
6464
</msub>
6565
<msub>
66-
<mi mathvariant="bold">C</mi>
66+
<mi mathvariant="bold-italic">C</mi>
6767
<mi>k</mi>
6868
</msub>
6969
<mo>=</mo>

test/writer/mml/complex3.test

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11695,12 +11695,12 @@
1169511695
<mtd columnalign="center" style="text-align: center">
1169611696
<mrow>
1169711697
<mrow>
11698-
<mi mathvariant="bold">a</mi>
11698+
<mi mathvariant="bold-italic">a</mi>
1169911699
<mo>+</mo>
11700-
<mi mathvariant="bold">b</mi>
11700+
<mi mathvariant="bold-italic">b</mi>
1170111701
</mrow>
1170211702
<mo>=</mo>
11703-
<mi mathvariant="bold">c</mi>
11703+
<mi mathvariant="bold-italic">c</mi>
1170411704
</mrow>
1170511705
</mtd>
1170611706
<mtd columnalign="center" style="text-align: center" />
@@ -11726,7 +11726,7 @@
1172611726
<mo>&#8289;</mo>
1172711727
<mrow>
1172811728
<mo stretchy="false" form="prefix">(</mo>
11729-
<mi mathvariant="bold">x</mi>
11729+
<mi mathvariant="bold-italic">x</mi>
1173011730
<mo stretchy="false" form="postfix">)</mo>
1173111731
</mrow>
1173211732
</mrow>
@@ -11785,13 +11785,13 @@
1178511785
<mi>&#8290;</mi>
1178611786
<mi>s</mi>
1178711787
<mi>&#8290;</mi>
11788-
<mi mathvariant="bold">o</mi>
11788+
<mi mathvariant="bold-italic">o</mi>
1178911789
<mi>&#8290;</mi>
11790-
<mi mathvariant="bold">v</mi>
11790+
<mi mathvariant="bold-italic">v</mi>
1179111791
<mi>&#8290;</mi>
11792-
<mi mathvariant="bold">e</mi>
11792+
<mi mathvariant="bold-italic">e</mi>
1179311793
<mi>&#8290;</mi>
11794-
<mi mathvariant="bold">r</mi>
11794+
<mi mathvariant="bold-italic">r</mi>
1179511795
<mi>&#8290;</mi>
1179611796
<mi>t</mi>
1179711797
<mi>&#8290;</mi>
@@ -12085,7 +12085,7 @@
1208512085
</mrow>
1208612086
</mrow>
1208712087
<mo>⋅</mo>
12088-
<mi mathvariant="bold">u</mi>
12088+
<mi mathvariant="bold-italic">u</mi>
1208912089
</mrow>
1209012090
</mrow>
1209112091
</mtd>
@@ -14254,7 +14254,7 @@
1425414254
</mrow>
1425514255
<mrow>
1425614256
<mo stretchy="false" form="prefix">(</mo>
14257-
<mi mathvariant="bold">I</mi>
14257+
<mi mathvariant="bold-italic">I</mi>
1425814258
<mo stretchy="false" form="postfix">)</mo>
1425914259
</mrow>
1426014260
</mrow>
@@ -16898,7 +16898,7 @@
1689816898
<msub>
1689916899
<mrow />
1690016900
<msup>
16901-
<mi mathvariant="bold">R</mi>
16901+
<mi mathvariant="bold-italic">R</mi>
1690216902
<mn>3</mn>
1690316903
</msup>
1690416904
</msub>
@@ -16979,12 +16979,12 @@
1697916979
<mi mathvariant="normal">∇×</mi>
1698016980
<mo>&#8289;</mo>
1698116981
</mrow>
16982-
<mi mathvariant="bold">F</mi>
16982+
<mi mathvariant="bold-italic">F</mi>
1698316983
</mrow>
1698416984
<mo stretchy="true" form="postfix">)</mo>
1698516985
</mrow>
1698616986
<mo>⋅</mo>
16987-
<mi mathvariant="bold">k</mi>
16987+
<mi mathvariant="bold-italic">k</mi>
1698816988
</mrow>
1698916989
<mo>=</mo>
1699016990
<mrow>

test/writer/mml/miequivalents11.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@
122122
<mrow>
123123
<mi>𝐀</mi>
124124
<mo>=</mo>
125-
<mi mathvariant="bold">A</mi>
125+
<mi mathvariant="bold-italic">A</mi>
126126
</mrow>
127127
</mtd>
128128
</mtr>

test/writer/mml/mimathvariant13.test

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
<mi>a</mi>
6666
</mtd>
6767
<mtd columnalign="center" style="text-align: center">
68-
<mi mathvariant="bold">a</mi>
68+
<mi mathvariant="bold-italic">a</mi>
6969
</mtd>
7070
<mtd columnalign="center" style="text-align: center">
7171
<mi mathvariant="italic">a</mi>
@@ -104,7 +104,7 @@
104104
<mi mathvariant="monospace">a</mi>
105105
</mtd>
106106
<mtd columnalign="center" style="text-align: center">
107-
<mi mathvariant="bold">ab</mi>
107+
<mi mathvariant="bold-italic">ab</mi>
108108
</mtd>
109109
</mtr>
110110
<mtr>
@@ -115,7 +115,7 @@
115115
<mi>A</mi>
116116
</mtd>
117117
<mtd columnalign="center" style="text-align: center">
118-
<mi mathvariant="bold">A</mi>
118+
<mi mathvariant="bold-italic">A</mi>
119119
</mtd>
120120
<mtd columnalign="center" style="text-align: center">
121121
<mi mathvariant="italic">A</mi>
@@ -154,7 +154,7 @@
154154
<mi mathvariant="monospace">A</mi>
155155
</mtd>
156156
<mtd columnalign="center" style="text-align: center">
157-
<mi mathvariant="bold">α</mi>
157+
<mi mathvariant="bold-italic">α</mi>
158158
</mtd>
159159
</mtr>
160160
</mtable>

0 commit comments

Comments
 (0)