Skip to content

Commit 73d511a

Browse files
committed
OMML writer: properly handle bold/italics on identifiers.
Identifiers marked as bold need to be marked as bold-italic. Special exception for uppercase Greek. Closes #280.
1 parent 3388a91 commit 73d511a

File tree

7 files changed

+78
-33
lines changed

7 files changed

+78
-33
lines changed

src/Text/TeXMath/Writers/OMML.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,10 @@ showExp props e =
233233
EIdentifier x
234234
| isUppercaseGreek x
235235
, null props -> [str [mnodeA "sty" "p" ()] x]
236+
| not (isUppercaseGreek x)
237+
, [Element{ elName = QName "sty" _ _
238+
, elAttribs = [Attr (QName "val" Nothing (Just "m")) "b"] }] <- props
239+
-> [str [mnodeA "sty" "bi" ()] x] -- #280
236240
| otherwise -> [str props x]
237241
EMathOperator x -> [str (mnodeA "sty" "p" () : props) x]
238242
ESymbol ty xs

test/regression/280b.test

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<<< tex
2+
\boldsymbol{\Gamma + b + \alpha}
3+
>>> omml
4+
<?xml version='1.0' ?>
5+
<m:oMathPara>
6+
<m:oMathParaPr>
7+
<m:jc m:val="center" />
8+
</m:oMathParaPr>
9+
<m:oMath>
10+
<m:r>
11+
<m:rPr>
12+
<m:sty m:val="b" />
13+
</m:rPr>
14+
<m:t>Γ</m:t>
15+
</m:r>
16+
<m:r>
17+
<m:rPr>
18+
<m:sty m:val="b" />
19+
</m:rPr>
20+
<m:t>+</m:t>
21+
</m:r>
22+
<m:r>
23+
<m:rPr>
24+
<m:sty m:val="bi" />
25+
</m:rPr>
26+
<m:t>b</m:t>
27+
</m:r>
28+
<m:r>
29+
<m:rPr>
30+
<m:sty m:val="b" />
31+
</m:rPr>
32+
<m:t>+</m:t>
33+
</m:r>
34+
<m:r>
35+
<m:rPr>
36+
<m:sty m:val="bi" />
37+
</m:rPr>
38+
<m:t>α</m:t>
39+
</m:r>
40+
</m:oMath>
41+
</m:oMathPara>

test/writer/omml/22.test

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -452,37 +452,37 @@
452452
<m:e>
453453
<m:r>
454454
<m:rPr>
455-
<m:sty m:val="b" />
455+
<m:sty m:val="bi" />
456456
</m:rPr>
457457
<m:t>A</m:t>
458458
</m:r>
459459
<m:r>
460460
<m:rPr>
461-
<m:sty m:val="b" />
461+
<m:sty m:val="bi" />
462462
</m:rPr>
463463
<m:t>B</m:t>
464464
</m:r>
465465
<m:r>
466466
<m:rPr>
467-
<m:sty m:val="b" />
467+
<m:sty m:val="bi" />
468468
</m:rPr>
469469
<m:t>C</m:t>
470470
</m:r>
471471
<m:r>
472472
<m:rPr>
473-
<m:sty m:val="b" />
473+
<m:sty m:val="bi" />
474474
</m:rPr>
475475
<m:t>a</m:t>
476476
</m:r>
477477
<m:r>
478478
<m:rPr>
479-
<m:sty m:val="b" />
479+
<m:sty m:val="bi" />
480480
</m:rPr>
481481
<m:t>b</m:t>
482482
</m:r>
483483
<m:r>
484484
<m:rPr>
485-
<m:sty m:val="b" />
485+
<m:sty m:val="bi" />
486486
</m:rPr>
487487
<m:t>c</m:t>
488488
</m:r>
@@ -502,37 +502,37 @@
502502
<m:e>
503503
<m:r>
504504
<m:rPr>
505-
<m:sty m:val="b" />
505+
<m:sty m:val="bi" />
506506
</m:rPr>
507507
<m:t>A</m:t>
508508
</m:r>
509509
<m:r>
510510
<m:rPr>
511-
<m:sty m:val="b" />
511+
<m:sty m:val="bi" />
512512
</m:rPr>
513513
<m:t>B</m:t>
514514
</m:r>
515515
<m:r>
516516
<m:rPr>
517-
<m:sty m:val="b" />
517+
<m:sty m:val="bi" />
518518
</m:rPr>
519519
<m:t>C</m:t>
520520
</m:r>
521521
<m:r>
522522
<m:rPr>
523-
<m:sty m:val="b" />
523+
<m:sty m:val="bi" />
524524
</m:rPr>
525525
<m:t>a</m:t>
526526
</m:r>
527527
<m:r>
528528
<m:rPr>
529-
<m:sty m:val="b" />
529+
<m:sty m:val="bi" />
530530
</m:rPr>
531531
<m:t>b</m:t>
532532
</m:r>
533533
<m:r>
534534
<m:rPr>
535-
<m:sty m:val="b" />
535+
<m:sty m:val="bi" />
536536
</m:rPr>
537537
<m:t>c</m:t>
538538
</m:r>

test/writer/omml/binomial_coefficient.test

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
<m:oMath>
4949
<m:r>
5050
<m:rPr>
51-
<m:sty m:val="b" />
51+
<m:sty m:val="bi" />
5252
</m:rPr>
5353
<m:t>C</m:t>
5454
</m:r>
@@ -84,7 +84,7 @@
8484
<m:e>
8585
<m:r>
8686
<m:rPr>
87-
<m:sty m:val="b" />
87+
<m:sty m:val="bi" />
8888
</m:rPr>
8989
<m:t>C</m:t>
9090
</m:r>
@@ -122,7 +122,7 @@
122122
<m:e>
123123
<m:r>
124124
<m:rPr>
125-
<m:sty m:val="b" />
125+
<m:sty m:val="bi" />
126126
</m:rPr>
127127
<m:t>C</m:t>
128128
</m:r>

test/writer/omml/complex3.test

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17527,7 +17527,7 @@
1752717527
<m:e>
1752817528
<m:r>
1752917529
<m:rPr>
17530-
<m:sty m:val="b" />
17530+
<m:sty m:val="bi" />
1753117531
</m:rPr>
1753217532
<m:t>a</m:t>
1753317533
</m:r>
@@ -17539,7 +17539,7 @@
1753917539
</m:r>
1754017540
<m:r>
1754117541
<m:rPr>
17542-
<m:sty m:val="b" />
17542+
<m:sty m:val="bi" />
1754317543
</m:rPr>
1754417544
<m:t>b</m:t>
1754517545
</m:r>
@@ -17551,7 +17551,7 @@
1755117551
</m:r>
1755217552
<m:r>
1755317553
<m:rPr>
17554-
<m:sty m:val="b" />
17554+
<m:sty m:val="bi" />
1755517555
</m:rPr>
1755617556
<m:t>c</m:t>
1755717557
</m:r>
@@ -17603,7 +17603,7 @@
1760317603
</m:r>
1760417604
<m:r>
1760517605
<m:rPr>
17606-
<m:sty m:val="b" />
17606+
<m:sty m:val="bi" />
1760717607
</m:rPr>
1760817608
<m:t>x</m:t>
1760917609
</m:r>
@@ -17851,7 +17851,7 @@
1785117851
</m:r>
1785217852
<m:r>
1785317853
<m:rPr>
17854-
<m:sty m:val="b" />
17854+
<m:sty m:val="bi" />
1785517855
</m:rPr>
1785617856
<m:t>o</m:t>
1785717857
</m:r>
@@ -17863,7 +17863,7 @@
1786317863
</m:r>
1786417864
<m:r>
1786517865
<m:rPr>
17866-
<m:sty m:val="b" />
17866+
<m:sty m:val="bi" />
1786717867
</m:rPr>
1786817868
<m:t>v</m:t>
1786917869
</m:r>
@@ -17875,7 +17875,7 @@
1787517875
</m:r>
1787617876
<m:r>
1787717877
<m:rPr>
17878-
<m:sty m:val="b" />
17878+
<m:sty m:val="bi" />
1787917879
</m:rPr>
1788017880
<m:t>e</m:t>
1788117881
</m:r>
@@ -17887,7 +17887,7 @@
1788717887
</m:r>
1788817888
<m:r>
1788917889
<m:rPr>
17890-
<m:sty m:val="b" />
17890+
<m:sty m:val="bi" />
1789117891
</m:rPr>
1789217892
<m:t>r</m:t>
1789317893
</m:r>
@@ -18759,7 +18759,7 @@
1875918759
</m:r>
1876018760
<m:r>
1876118761
<m:rPr>
18762-
<m:sty m:val="b" />
18762+
<m:sty m:val="bi" />
1876318763
</m:rPr>
1876418764
<m:t>u</m:t>
1876518765
</m:r>
@@ -24005,7 +24005,7 @@
2400524005
</m:r>
2400624006
<m:r>
2400724007
<m:rPr>
24008-
<m:sty m:val="b" />
24008+
<m:sty m:val="bi" />
2400924009
</m:rPr>
2401024010
<m:t>I</m:t>
2401124011
</m:r>
@@ -30415,7 +30415,7 @@
3041530415
<m:e>
3041630416
<m:r>
3041730417
<m:rPr>
30418-
<m:sty m:val="b" />
30418+
<m:sty m:val="bi" />
3041930419
</m:rPr>
3042030420
<m:t>R</m:t>
3042130421
</m:r>
@@ -30620,7 +30620,7 @@
3062030620
</m:r>
3062130621
<m:r>
3062230622
<m:rPr>
30623-
<m:sty m:val="b" />
30623+
<m:sty m:val="bi" />
3062430624
</m:rPr>
3062530625
<m:t>F</m:t>
3062630626
</m:r>
@@ -30634,7 +30634,7 @@
3063430634
</m:r>
3063530635
<m:r>
3063630636
<m:rPr>
30637-
<m:sty m:val="b" />
30637+
<m:sty m:val="bi" />
3063830638
</m:rPr>
3063930639
<m:t>k</m:t>
3064030640
</m:r>

test/writer/omml/miequivalents11.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@
153153
</m:r>
154154
<m:r>
155155
<m:rPr>
156-
<m:sty m:val="b" />
156+
<m:sty m:val="bi" />
157157
</m:rPr>
158158
<m:t>A</m:t>
159159
</m:r>

test/writer/omml/mimathvariant13.test

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@
177177
<m:e>
178178
<m:r>
179179
<m:rPr>
180-
<m:sty m:val="b" />
180+
<m:sty m:val="bi" />
181181
</m:rPr>
182182
<m:t>a</m:t>
183183
</m:r>
@@ -291,7 +291,7 @@
291291
<m:e>
292292
<m:r>
293293
<m:rPr>
294-
<m:sty m:val="b" />
294+
<m:sty m:val="bi" />
295295
</m:rPr>
296296
<m:t>ab</m:t>
297297
</m:r>
@@ -311,7 +311,7 @@
311311
<m:e>
312312
<m:r>
313313
<m:rPr>
314-
<m:sty m:val="b" />
314+
<m:sty m:val="bi" />
315315
</m:rPr>
316316
<m:t>A</m:t>
317317
</m:r>
@@ -425,7 +425,7 @@
425425
<m:e>
426426
<m:r>
427427
<m:rPr>
428-
<m:sty m:val="b" />
428+
<m:sty m:val="bi" />
429429
</m:rPr>
430430
<m:t>α</m:t>
431431
</m:r>

0 commit comments

Comments
 (0)