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