@@ -278,73 +278,62 @@ class _KatexParser {
278
278
case 'fontsize-ensurer' :
279
279
// .sizing,
280
280
// .fontsize-ensurer { ... }
281
- if (index + 1 < spanClasses.length) {
282
- final resetSizeClass = spanClasses[index++ ];
283
- final sizeClass = spanClasses[index++ ];
281
+ if (index + 2 > spanClasses.length) throw KatexHtmlParseError ();
282
+ final resetSizeClass = spanClasses[index++ ];
283
+ final sizeClass = spanClasses[index++ ];
284
284
285
- final resetSizeClassSuffix = _resetSizeClassRegExp.firstMatch (resetSizeClass)? .group (1 );
286
- final sizeClassSuffix = _sizeClassRegExp.firstMatch (sizeClass)? .group (1 );
285
+ final resetSizeClassSuffix = _resetSizeClassRegExp.firstMatch (resetSizeClass)? .group (1 );
286
+ final sizeClassSuffix = _sizeClassRegExp.firstMatch (sizeClass)? .group (1 );
287
287
288
- if (resetSizeClassSuffix != null && sizeClassSuffix != null ) {
289
- const sizes = < double > [0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 1 , 1.2 , 1.44 , 1.728 , 2.074 , 2.488 ];
288
+ if (resetSizeClassSuffix != null && sizeClassSuffix != null ) {
289
+ const sizes = < double > [0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 1 , 1.2 , 1.44 , 1.728 , 2.074 , 2.488 ];
290
290
291
- final resetSizeIdx = int .parse (resetSizeClassSuffix, radix: 10 );
292
- final sizeIdx = int .parse (sizeClassSuffix, radix: 10 );
291
+ final resetSizeIdx = int .parse (resetSizeClassSuffix, radix: 10 );
292
+ final sizeIdx = int .parse (sizeClassSuffix, radix: 10 );
293
293
294
- // These indexes start at 1.
295
- if (resetSizeIdx <= sizes.length && sizeIdx <= sizes.length) {
296
- styles.fontSizeEm = sizes[sizeIdx - 1 ] / sizes[resetSizeIdx - 1 ];
297
- continue ;
298
- }
294
+ // These indexes start at 1.
295
+ if (resetSizeIdx <= sizes.length && sizeIdx <= sizes.length) {
296
+ styles.fontSizeEm = sizes[sizeIdx - 1 ] / sizes[resetSizeIdx - 1 ];
297
+ continue ;
299
298
}
300
299
}
301
300
302
301
throw KatexHtmlParseError ();
303
302
304
303
case 'delimsizing' :
305
304
// .delimsizing { ... }
306
- if (index < spanClasses.length) {
307
- final nextClass = spanClasses[index++ ];
308
- switch (nextClass) {
309
- case 'size1' :
310
- styles.fontFamily = 'KaTeX_Size1' ;
311
- case 'size2' :
312
- styles.fontFamily = 'KaTeX_Size2' ;
313
- case 'size3' :
314
- styles.fontFamily = 'KaTeX_Size3' ;
315
- case 'size4' :
316
- styles.fontFamily = 'KaTeX_Size4' ;
317
-
318
- case 'mult' :
319
- // TODO handle nested spans with `.delim-size{1,4}` class.
320
- break ;
321
- }
322
-
323
- if (styles.fontFamily == null ) throw KatexHtmlParseError ();
324
-
325
- continue ;
305
+ if (index + 1 > spanClasses.length) throw KatexHtmlParseError ();
306
+ final nextClass = spanClasses[index++ ];
307
+ switch (nextClass) {
308
+ case 'size1' :
309
+ styles.fontFamily = 'KaTeX_Size1' ;
310
+ case 'size2' :
311
+ styles.fontFamily = 'KaTeX_Size2' ;
312
+ case 'size3' :
313
+ styles.fontFamily = 'KaTeX_Size3' ;
314
+ case 'size4' :
315
+ styles.fontFamily = 'KaTeX_Size4' ;
316
+
317
+ case 'mult' :
318
+ // TODO handle nested spans with `.delim-size{1,4}` class.
319
+ break ;
326
320
}
327
321
328
- throw KatexHtmlParseError ();
322
+ if (styles.fontFamily == null ) throw KatexHtmlParseError ();
329
323
330
324
// TODO handle .nulldelimiter and .delimcenter .
331
325
332
326
case 'op-symbol' :
333
327
// .op-symbol { ... }
334
- if (index < spanClasses.length) {
335
- final nextClass = spanClasses[index++ ];
336
- switch (nextClass) {
337
- case 'small-op' :
338
- styles.fontFamily = 'KaTeX_Size1' ;
339
- case 'large-op' :
340
- styles.fontFamily = 'KaTeX_Size2' ;
341
- }
342
- if (styles.fontFamily == null ) throw KatexHtmlParseError ();
343
-
344
- continue ;
328
+ if (index + 1 > spanClasses.length) throw KatexHtmlParseError ();
329
+ final nextClass = spanClasses[index++ ];
330
+ switch (nextClass) {
331
+ case 'small-op' :
332
+ styles.fontFamily = 'KaTeX_Size1' ;
333
+ case 'large-op' :
334
+ styles.fontFamily = 'KaTeX_Size2' ;
345
335
}
346
-
347
- throw KatexHtmlParseError ();
336
+ if (styles.fontFamily == null ) throw KatexHtmlParseError ();
348
337
349
338
// TODO handle more classes from katex.scss
350
339
0 commit comments