@@ -482,60 +482,40 @@ def _get_glyph(self, fontname: str, font_class: str,
482
482
else :
483
483
return self ._stix_fallback ._get_glyph (fontname , font_class , sym )
484
484
485
- # The Bakoma fonts contain many pre-sized alternatives for the
486
- # delimiters. The AutoSizedChar class will use these alternatives
487
- # and select the best (closest sized) glyph.
485
+ # The Bakoma fonts contain many pre-sized alternatives for the delimiters. The
486
+ # Auto(Height|Width)Char classes will use these alternatives and select the best
487
+ # (closest sized) glyph.
488
+ _latex_sizes = ('big' , 'Big' , 'bigg' , 'Bigg' )
488
489
_size_alternatives = {
489
- '(' : [('rm' , '(' ), ('ex' , '\xa1 ' ), ('ex' , '\xb3 ' ),
490
- ('ex' , '\xb5 ' ), ('ex' , '\xc3 ' )],
491
- ')' : [('rm' , ')' ), ('ex' , '\xa2 ' ), ('ex' , '\xb4 ' ),
492
- ('ex' , '\xb6 ' ), ('ex' , '\x21 ' )],
493
- '{' : [('cal' , '{' ), ('ex' , '\xa9 ' ), ('ex' , '\x6e ' ),
494
- ('ex' , '\xbd ' ), ('ex' , '\x28 ' )],
495
- '}' : [('cal' , '}' ), ('ex' , '\xaa ' ), ('ex' , '\x6f ' ),
496
- ('ex' , '\xbe ' ), ('ex' , '\x29 ' )],
497
- # The fourth size of '[' is mysteriously missing from the BaKoMa
498
- # font, so I've omitted it for both '[' and ']'
499
- '[' : [('rm' , '[' ), ('ex' , '\xa3 ' ), ('ex' , '\x68 ' ),
500
- ('ex' , '\x22 ' )],
501
- ']' : [('rm' , ']' ), ('ex' , '\xa4 ' ), ('ex' , '\x69 ' ),
502
- ('ex' , '\x23 ' )],
503
- r'\lfloor' : [('ex' , '\xa5 ' ), ('ex' , '\x6a ' ),
504
- ('ex' , '\xb9 ' ), ('ex' , '\x24 ' )],
505
- r'\rfloor' : [('ex' , '\xa6 ' ), ('ex' , '\x6b ' ),
506
- ('ex' , '\xba ' ), ('ex' , '\x25 ' )],
507
- r'\lceil' : [('ex' , '\xa7 ' ), ('ex' , '\x6c ' ),
508
- ('ex' , '\xbb ' ), ('ex' , '\x26 ' )],
509
- r'\rceil' : [('ex' , '\xa8 ' ), ('ex' , '\x6d ' ),
510
- ('ex' , '\xbc ' ), ('ex' , '\x27 ' )],
511
- r'\langle' : [('ex' , '\xad ' ), ('ex' , '\x44 ' ),
512
- ('ex' , '\xbf ' ), ('ex' , '\x2a ' )],
513
- r'\rangle' : [('ex' , '\xae ' ), ('ex' , '\x45 ' ),
514
- ('ex' , '\xc0 ' ), ('ex' , '\x2b ' )],
515
- r'\__sqrt__' : [('ex' , '\x70 ' ), ('ex' , '\x71 ' ),
516
- ('ex' , '\x72 ' ), ('ex' , '\x73 ' )],
517
- r'\backslash' : [('ex' , '\xb2 ' ), ('ex' , '\x2f ' ),
518
- ('ex' , '\xc2 ' ), ('ex' , '\x2d ' )],
519
- r'/' : [('rm' , '/' ), ('ex' , '\xb1 ' ), ('ex' , '\x2e ' ),
520
- ('ex' , '\xcb ' ), ('ex' , '\x2c ' )],
521
- r'\widehat' : [('rm' , '\x5e ' ), ('ex' , '\x62 ' ), ('ex' , '\x63 ' ),
522
- ('ex' , '\x64 ' )],
523
- r'\widetilde' : [('rm' , '\x7e ' ), ('ex' , '\x65 ' ), ('ex' , '\x66 ' ),
524
- ('ex' , '\x67 ' )],
525
- r'<' : [('cal' , 'h' ), ('ex' , 'D' )],
526
- r'>' : [('cal' , 'i' ), ('ex' , 'E' )]
527
- }
490
+ '(' : [('rm' , '(' ), * [('ex' , fr'\__parenleft{ s } __' ) for s in _latex_sizes ]],
491
+ ')' : [('rm' , ')' ), * [('ex' , fr'\__parenright{ s } __' ) for s in _latex_sizes ]],
492
+ '{' : [('ex' , fr'\__braceleft{ s } __' ) for s in _latex_sizes ],
493
+ '}' : [('ex' , fr'\__braceright{ s } __' ) for s in _latex_sizes ],
494
+ '[' : [('rm' , '[' ), * [('ex' , fr'\__bracketleft{ s } __' ) for s in _latex_sizes ]],
495
+ ']' : [('rm' , ']' ), * [('ex' , fr'\__bracketright{ s } __' ) for s in _latex_sizes ]],
496
+ '<' : [('cal' , r'\__angbracketleft__' ),
497
+ * [('ex' , fr'\__angbracketleft{ s } __' ) for s in _latex_sizes ]],
498
+ '>' : [('cal' , r'\__angbracketright__' ),
499
+ * [('ex' , fr'\__angbracketright{ s } __' ) for s in _latex_sizes ]],
500
+ r'\lfloor' : [('ex' , fr'\__floorleft{ s } __' ) for s in _latex_sizes ],
501
+ r'\rfloor' : [('ex' , fr'\__floorright{ s } __' ) for s in _latex_sizes ],
502
+ r'\lceil' : [('ex' , fr'\__ceilingleft{ s } __' ) for s in _latex_sizes ],
503
+ r'\rceil' : [('ex' , fr'\__ceilingright{ s } __' ) for s in _latex_sizes ],
504
+ r'\__sqrt__' : [('ex' , fr'\__radical{ s } __' ) for s in _latex_sizes ],
505
+ r'\backslash' : [('ex' , fr'\__backslash{ s } __' ) for s in _latex_sizes ],
506
+ r'/' : [('rm' , '/' ), * [('ex' , fr'\__slash{ s } __' ) for s in _latex_sizes ]],
507
+ r'\widehat' : [('rm' , '\x5e ' ), ('ex' , r'\__hatwide__' ), ('ex' , r'\__hatwider__' ),
508
+ ('ex' , r'\__hatwidest__' )],
509
+ r'\widetilde' : [('rm' , '\x7e ' ), ('ex' , r'\__tildewide__' ),
510
+ ('ex' , r'\__tildewider__' ), ('ex' , r'\__tildewidest__' )],
511
+ }
528
512
529
- for alias , target in [(r'\leftparen' , '(' ),
530
- (r'\rightparen' , ')' ),
531
- (r'\leftbrace' , '{' ),
532
- (r'\rightbrace' , '}' ),
533
- (r'\leftbracket' , '[' ),
534
- (r'\rightbracket' , ']' ),
535
- (r'\{' , '{' ),
536
- (r'\}' , '}' ),
537
- (r'\[' , '[' ),
538
- (r'\]' , ']' )]:
513
+ for alias , target in [(r'\leftparen' , '(' ), (r'\rightparen' , ')' ),
514
+ (r'\leftbrace' , '{' ), (r'\rightbrace' , '}' ),
515
+ (r'\leftbracket' , '[' ), (r'\rightbracket' , ']' ),
516
+ (r'\langle' , '<' ), (r'\rangle' , '>' ),
517
+ (r'\{' , '{' ), (r'\}' , '}' ),
518
+ (r'\[' , '[' ), (r'\]' , ']' )]:
539
519
_size_alternatives [alias ] = _size_alternatives [target ]
540
520
541
521
def get_sized_alternatives_for_symbol (self , fontname : str ,
0 commit comments