@@ -473,57 +473,37 @@ def _get_glyph(self, fontname: str, font_class: str,
473
473
# The Bakoma fonts contain many pre-sized alternatives for the
474
474
# delimiters. The AutoSizedChar class will use these alternatives
475
475
# and select the best (closest sized) glyph.
476
+ _latex_sizes = ('big' , 'Big' , 'bigg' , 'Bigg' )
476
477
_size_alternatives = {
477
- '(' : [('rm' , '(' ), ('ex' , '\xa1 ' ), ('ex' , '\xb3 ' ),
478
- ('ex' , '\xb5 ' ), ('ex' , '\xc3 ' )],
479
- ')' : [('rm' , ')' ), ('ex' , '\xa2 ' ), ('ex' , '\xb4 ' ),
480
- ('ex' , '\xb6 ' ), ('ex' , '\x21 ' )],
481
- '{' : [('cal' , '{' ), ('ex' , '\xa9 ' ), ('ex' , '\x6e ' ),
482
- ('ex' , '\xbd ' ), ('ex' , '\x28 ' )],
483
- '}' : [('cal' , '}' ), ('ex' , '\xaa ' ), ('ex' , '\x6f ' ),
484
- ('ex' , '\xbe ' ), ('ex' , '\x29 ' )],
485
- # The fourth size of '[' is mysteriously missing from the BaKoMa
486
- # font, so I've omitted it for both '[' and ']'
487
- '[' : [('rm' , '[' ), ('ex' , '\xa3 ' ), ('ex' , '\x68 ' ),
488
- ('ex' , '\x22 ' )],
489
- ']' : [('rm' , ']' ), ('ex' , '\xa4 ' ), ('ex' , '\x69 ' ),
490
- ('ex' , '\x23 ' )],
491
- r'\lfloor' : [('ex' , '\xa5 ' ), ('ex' , '\x6a ' ),
492
- ('ex' , '\xb9 ' ), ('ex' , '\x24 ' )],
493
- r'\rfloor' : [('ex' , '\xa6 ' ), ('ex' , '\x6b ' ),
494
- ('ex' , '\xba ' ), ('ex' , '\x25 ' )],
495
- r'\lceil' : [('ex' , '\xa7 ' ), ('ex' , '\x6c ' ),
496
- ('ex' , '\xbb ' ), ('ex' , '\x26 ' )],
497
- r'\rceil' : [('ex' , '\xa8 ' ), ('ex' , '\x6d ' ),
498
- ('ex' , '\xbc ' ), ('ex' , '\x27 ' )],
499
- r'\langle' : [('ex' , '\xad ' ), ('ex' , '\x44 ' ),
500
- ('ex' , '\xbf ' ), ('ex' , '\x2a ' )],
501
- r'\rangle' : [('ex' , '\xae ' ), ('ex' , '\x45 ' ),
502
- ('ex' , '\xc0 ' ), ('ex' , '\x2b ' )],
503
- r'\__sqrt__' : [('ex' , '\x70 ' ), ('ex' , '\x71 ' ),
504
- ('ex' , '\x72 ' ), ('ex' , '\x73 ' )],
505
- r'\backslash' : [('ex' , '\xb2 ' ), ('ex' , '\x2f ' ),
506
- ('ex' , '\xc2 ' ), ('ex' , '\x2d ' )],
507
- r'/' : [('rm' , '/' ), ('ex' , '\xb1 ' ), ('ex' , '\x2e ' ),
508
- ('ex' , '\xcb ' ), ('ex' , '\x2c ' )],
509
- r'\widehat' : [('rm' , '\x5e ' ), ('ex' , '\x62 ' ), ('ex' , '\x63 ' ),
510
- ('ex' , '\x64 ' )],
511
- r'\widetilde' : [('rm' , '\x7e ' ), ('ex' , '\x65 ' ), ('ex' , '\x66 ' ),
512
- ('ex' , '\x67 ' )],
513
- r'<' : [('cal' , 'h' ), ('ex' , 'D' )],
514
- r'>' : [('cal' , 'i' ), ('ex' , 'E' )]
515
- }
478
+ '(' : [('rm' , '(' ), * [('ex' , fr'\parenleft{ s } ' ) for s in _latex_sizes ]],
479
+ ')' : [('rm' , ')' ), * [('ex' , fr'\parenright{ s } ' ) for s in _latex_sizes ]],
480
+ '{' : [('cal' , '{' ), * [('ex' , fr'\braceleft{ s } ' ) for s in _latex_sizes ]],
481
+ '}' : [('cal' , '}' ), * [('ex' , fr'\braceright{ s } ' ) for s in _latex_sizes ]],
482
+ '[' : [('rm' , '[' ), * [('ex' , fr'\bracketleft{ s } ' ) for s in _latex_sizes ]],
483
+ ']' : [('rm' , ']' ), * [('ex' , fr'\bracketright{ s } ' ) for s in _latex_sizes ]],
484
+ '<' : [('cal' , r'\angbracketleft' ),
485
+ * [('ex' , fr'\angbracketleft{ s } ' ) for s in _latex_sizes ]],
486
+ '>' : [('cal' , r'\angbracketright' ),
487
+ * [('ex' , fr'\angbracketright{ s } ' ) for s in _latex_sizes ]],
488
+ r'\lfloor' : [('ex' , fr'\floorleft{ s } ' ) for s in _latex_sizes ],
489
+ r'\rfloor' : [('ex' , fr'\floorright{ s } ' ) for s in _latex_sizes ],
490
+ r'\lceil' : [('ex' , fr'\ceilingleft{ s } ' ) for s in _latex_sizes ],
491
+ r'\rceil' : [('ex' , fr'\ceilingright{ s } ' ) for s in _latex_sizes ],
492
+ r'\__sqrt__' : [('ex' , fr'\radical{ s } ' ) for s in _latex_sizes ],
493
+ r'\backslash' : [('ex' , fr'\backslash{ s } ' ) for s in _latex_sizes ],
494
+ r'/' : [('rm' , '/' ), * [('ex' , fr'\slash{ s } ' ) for s in _latex_sizes ]],
495
+ r'\widehat' : [('rm' , '\x5e ' ), ('ex' , r'\hatwide' ), ('ex' , r'\hatwider' ),
496
+ ('ex' , r'\hatwidest' )],
497
+ r'\widetilde' : [('rm' , '\x7e ' ), ('ex' , r'\tildewide' ), ('ex' , r'\tildewider' ),
498
+ ('ex' , r'\tildewidest' )],
499
+ }
516
500
517
- for alias , target in [(r'\leftparen' , '(' ),
518
- (r'\rightparen' , ')' ),
519
- (r'\leftbrace' , '{' ),
520
- (r'\rightbrace' , '}' ),
521
- (r'\leftbracket' , '[' ),
522
- (r'\rightbracket' , ']' ),
523
- (r'\{' , '{' ),
524
- (r'\}' , '}' ),
525
- (r'\[' , '[' ),
526
- (r'\]' , ']' )]:
501
+ for alias , target in [(r'\leftparen' , '(' ), (r'\rightparen' , ')' ),
502
+ (r'\leftbrace' , '{' ), (r'\rightbrace' , '}' ),
503
+ (r'\leftbracket' , '[' ), (r'\rightbracket' , ']' ),
504
+ (r'\langle' , '<' ), (r'\rangle' , '>' ),
505
+ (r'\{' , '{' ), (r'\}' , '}' ),
506
+ (r'\[' , '[' ), (r'\]' , ']' )]:
527
507
_size_alternatives [alias ] = _size_alternatives [target ]
528
508
529
509
def get_sized_alternatives_for_symbol (self , fontname : str ,
0 commit comments