Skip to content

Commit e8e8f41

Browse files
rajveermalviyagnprice
authored andcommitted
content: Update base KaTeX text style to be explicit
This fixes a bug about `leadingDistribution` where previously it was taking the default value of `TextLeadingDistribution.proportional`, now it uses `TextLeadingDistribution.even` which seems to be the default strategy used by CSS, and it doesn't look like `katex.scss` overrides it. The vertical offsets being updated in tests are because of this fix. Another potential bug fix is about `textBaseline` where on some locale systems the default value for this could be `TextBaseline.ideographic`, and for KaTeX we always want `TextBaseline.alphabetic`.
1 parent bd353ef commit e8e8f41

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

lib/widgets/content.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,13 @@ class MathBlock extends StatelessWidget {
837837
const kBaseKatexTextStyle = TextStyle(
838838
fontSize: kBaseFontSize * 1.21,
839839
fontFamily: 'KaTeX_Main',
840-
height: 1.2);
840+
height: 1.2,
841+
fontWeight: FontWeight.normal,
842+
fontStyle: FontStyle.normal,
843+
textBaseline: TextBaseline.alphabetic,
844+
leadingDistribution: TextLeadingDistribution.even,
845+
decoration: TextDecoration.none,
846+
fontFamilyFallback: []);
841847

842848
@visibleForTesting
843849
class KatexWidget extends StatelessWidget {

test/widgets/content_test.dart

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -577,28 +577,28 @@ void main() {
577577
const testCases = <(ContentExample, List<(String, Offset, Size)>, {bool? skip})>[
578578
(ContentExample.mathBlockKatexSizing, skip: false, [
579579
('1', Offset(0.00, 2.24), Size(25.59, 61.00)),
580-
('2', Offset(25.59, 9.90), Size(21.33, 51.00)),
581-
('3', Offset(46.91, 16.30), Size(17.77, 43.00)),
582-
('4', Offset(64.68, 21.63), Size(14.80, 36.00)),
583-
('5', Offset(79.48, 26.07), Size(12.34, 30.00)),
584-
('6', Offset(91.82, 29.77), Size(10.28, 25.00)),
585-
('7', Offset(102.10, 31.62), Size(9.25, 22.00)),
586-
('8', Offset(111.35, 33.47), Size(8.23, 20.00)),
587-
('9', Offset(119.58, 35.32), Size(7.20, 17.00)),
588-
('0', Offset(126.77, 39.02), Size(5.14, 12.00)),
580+
('2', Offset(25.59, 10.04), Size(21.33, 51.00)),
581+
('3', Offset(46.91, 16.55), Size(17.77, 43.00)),
582+
('4', Offset(64.68, 21.98), Size(14.80, 36.00)),
583+
('5', Offset(79.48, 26.50), Size(12.34, 30.00)),
584+
('6', Offset(91.82, 30.26), Size(10.28, 25.00)),
585+
('7', Offset(102.10, 32.15), Size(9.25, 22.00)),
586+
('8', Offset(111.35, 34.03), Size(8.23, 20.00)),
587+
('9', Offset(119.58, 35.91), Size(7.20, 17.00)),
588+
('0', Offset(126.77, 39.68), Size(5.14, 12.00)),
589589
]),
590590
(ContentExample.mathBlockKatexNestedSizing, skip: false, [
591-
('1', Offset(0.00, 39.58), Size(5.14, 12.00)),
591+
('1', Offset(0.00, 40.24), Size(5.14, 12.00)),
592592
('2', Offset(5.14, 2.80), Size(25.59, 61.00)),
593593
]),
594594
// TODO: Re-enable this test after adding support for parsing
595595
// `vertical-align` in inline styles. Currently it fails
596596
// because `strut` span has `vertical-align`.
597597
(ContentExample.mathBlockKatexDelimSizing, skip: true, [
598598
('(', Offset(8.00, 46.36), Size(9.42, 25.00)),
599-
('[', Offset(17.42, 48.36), Size(9.71, 25.00)),
600-
('⌈', Offset(27.12, 49.36), Size(11.99, 25.00)),
601-
('⌊', Offset(39.11, 49.36), Size(13.14, 25.00)),
599+
('[', Offset(17.42, 46.36), Size(9.71, 25.00)),
600+
('⌈', Offset(27.12, 46.36), Size(11.99, 25.00)),
601+
('⌊', Offset(39.11, 46.36), Size(13.14, 25.00)),
602602
]),
603603
];
604604

0 commit comments

Comments
 (0)