Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfd3409d

Browse files
committed
Fix auto-sized glyphs with BaKoMa fonts
If the larger glyphs for an auto-sized character in `cmex10` uses acharacter that is in the `latex_to_bakoma` table, then it will be mappedan extra time into `cmr10` (usually). Thus we end up with a largeversion of a "normal" character, such as an exclamation point.Instead map these glyphs through the `latex_to_bakoma` table by usingtheir glyph names as "commands". This ensures they don't getdouble-mapped to the wrong font and fixes the following issues:- slash (/) uses a comma at the larger sizes- right parenthesis uses an exclamation point at the largest size- left and right braces use parentheses at the largest size- right floor uses a percentage sign at the largest size- left ceiling uses an ampersand at the largest sizeAlso, drop the regular size braces, as they are the same as the first`big`-sized version.
1 parentedce71d commitfd3409d

File tree

96 files changed

+19120
-848
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+19120
-848
lines changed

‎lib/matplotlib/_mathtext.py

Lines changed: 32 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -470,60 +470,40 @@ def _get_glyph(self, fontname: str, font_class: str,
470470
else:
471471
returnself._stix_fallback._get_glyph(fontname,font_class,sym)
472472

473-
# The Bakoma fonts contain many pre-sized alternatives for the
474-
# delimiters. The AutoSizedChar class will use these alternatives
475-
# and select the best (closest sized) glyph.
473+
# The Bakoma fonts contain many pre-sized alternatives for the delimiters. The
474+
# Auto(Height|Width)Char classes will use these alternatives and select the best
475+
# (closest sized) glyph.
476+
_latex_sizes= ('big','Big','bigg','Bigg')
476477
_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}__')forsin_latex_sizes]],
479+
')': [('rm',')'),*[('ex',fr'\__parenright{s}__')forsin_latex_sizes]],
480+
'{': [('ex',fr'\__braceleft{s}__')forsin_latex_sizes],
481+
'}': [('ex',fr'\__braceright{s}__')forsin_latex_sizes],
482+
'[': [('rm','['),*[('ex',fr'\__bracketleft{s}__')forsin_latex_sizes]],
483+
']': [('rm',']'),*[('ex',fr'\__bracketright{s}__')forsin_latex_sizes]],
484+
'<': [('cal',r'\__angbracketleft__'),
485+
*[('ex',fr'\__angbracketleft{s}__')forsin_latex_sizes]],
486+
'>': [('cal',r'\__angbracketright__'),
487+
*[('ex',fr'\__angbracketright{s}__')forsin_latex_sizes]],
488+
r'\lfloor': [('ex',fr'\__floorleft{s}__')forsin_latex_sizes],
489+
r'\rfloor': [('ex',fr'\__floorright{s}__')forsin_latex_sizes],
490+
r'\lceil': [('ex',fr'\__ceilingleft{s}__')forsin_latex_sizes],
491+
r'\rceil': [('ex',fr'\__ceilingright{s}__')forsin_latex_sizes],
492+
r'\__sqrt__': [('ex',fr'\__radical{s}__')forsin_latex_sizes],
493+
r'\backslash': [('ex',fr'\__backslash{s}__')forsin_latex_sizes],
494+
r'/': [('rm','/'),*[('ex',fr'\__slash{s}__')forsin_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__'),
498+
('ex',r'\__tildewider__'), ('ex',r'\__tildewidest')],
499+
}
516500

517-
foralias,targetin [(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+
foralias,targetin [(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'\]',']')]:
527507
_size_alternatives[alias]=_size_alternatives[target]
528508

529509
defget_sized_alternatives_for_symbol(self,fontname:str,

‎lib/matplotlib/_mathtext_data.py

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,75 @@
3333
'{' : ('cmex10',0xa9),
3434
'}' : ('cmex10',0xaa),
3535

36+
'\\__angbracketleft__' : ('cmsy10',0x68),
37+
'\\__angbracketright__' : ('cmsy10',0x69),
38+
'\\__angbracketleftbig__' : ('cmex10',0xad),
39+
'\\__angbracketleftBig__' : ('cmex10',0x44),
40+
'\\__angbracketleftbigg__' : ('cmex10',0xbf),
41+
'\\__angbracketleftBigg__' : ('cmex10',0x2a),
42+
'\\__angbracketrightbig__' : ('cmex10',0xae),
43+
'\\__angbracketrightBig__' : ('cmex10',0x45),
44+
'\\__angbracketrightbigg__' : ('cmex10',0xc0),
45+
'\\__angbracketrightBigg__' : ('cmex10',0x2b),
46+
'\\__backslashbig__' : ('cmex10',0xb2),
47+
'\\__backslashBig__' : ('cmex10',0x2f),
48+
'\\__backslashbigg__' : ('cmex10',0xc2),
49+
'\\__backslashBigg__' : ('cmex10',0x2d),
50+
'\\__braceleftbig__' : ('cmex10',0xa9),
51+
'\\__braceleftBig__' : ('cmex10',0x6e),
52+
'\\__braceleftbigg__' : ('cmex10',0xbd),
53+
'\\__braceleftBigg__' : ('cmex10',0x28),
54+
'\\__bracerightbig__' : ('cmex10',0xaa),
55+
'\\__bracerightBig__' : ('cmex10',0x6f),
56+
'\\__bracerightbigg__' : ('cmex10',0xbe),
57+
'\\__bracerightBigg__' : ('cmex10',0x29),
58+
'\\__bracketleftbig__' : ('cmex10',0xa3),
59+
'\\__bracketleftBig__' : ('cmex10',0x68),
60+
'\\__bracketleftbigg__' : ('cmex10',0x2219),
61+
'\\__bracketleftBigg__' : ('cmex10',0x22),
62+
'\\__bracketrightbig__' : ('cmex10',0xa4),
63+
'\\__bracketrightBig__' : ('cmex10',0x69),
64+
'\\__bracketrightbigg__' : ('cmex10',0xb8),
65+
'\\__bracketrightBigg__' : ('cmex10',0x23),
66+
'\\__ceilingleftbig__' : ('cmex10',0xa7),
67+
'\\__ceilingleftBig__' : ('cmex10',0x6c),
68+
'\\__ceilingleftbigg__' : ('cmex10',0xbb),
69+
'\\__ceilingleftBigg__' : ('cmex10',0x26),
70+
'\\__ceilingrightbig__' : ('cmex10',0xa8),
71+
'\\__ceilingrightBig__' : ('cmex10',0x6d),
72+
'\\__ceilingrightbigg__' : ('cmex10',0xbc),
73+
'\\__ceilingrightBigg__' : ('cmex10',0x27),
74+
'\\__floorleftbig__' : ('cmex10',0xa5),
75+
'\\__floorleftBig__' : ('cmex10',0x6a),
76+
'\\__floorleftbigg__' : ('cmex10',0xb9),
77+
'\\__floorleftBigg__' : ('cmex10',0x24),
78+
'\\__floorrightbig__' : ('cmex10',0xa6),
79+
'\\__floorrightBig__' : ('cmex10',0x6b),
80+
'\\__floorrightbigg__' : ('cmex10',0xba),
81+
'\\__floorrightBigg__' : ('cmex10',0x25),
82+
'\\__hatwide__' : ('cmex10',0x62),
83+
'\\__hatwider__' : ('cmex10',0x63),
84+
'\\__hatwidest__' : ('cmex10',0x64),
85+
'\\__parenleftbig__' : ('cmex10',0xa1),
86+
'\\__parenleftBig__' : ('cmex10',0xb3),
87+
'\\__parenleftbigg__' : ('cmex10',0xb5),
88+
'\\__parenleftBigg__' : ('cmex10',0xc3),
89+
'\\__parenrightbig__' : ('cmex10',0xa2),
90+
'\\__parenrightBig__' : ('cmex10',0xb4),
91+
'\\__parenrightbigg__' : ('cmex10',0xb6),
92+
'\\__parenrightBigg__' : ('cmex10',0x21),
93+
'\\__radicalbig__' : ('cmex10',0x70),
94+
'\\__radicalBig__' : ('cmex10',0x71),
95+
'\\__radicalbigg__' : ('cmex10',0x72),
96+
'\\__radicalBigg__' : ('cmex10',0x73),
97+
'\\__slashbig__' : ('cmex10',0xb1),
98+
'\\__slashBig__' : ('cmex10',0x2e),
99+
'\\__slashbigg__' : ('cmex10',0xc1),
100+
'\\__slashBigg__' : ('cmex10',0x2c),
101+
'\\__tildewide__' : ('cmex10',0x65),
102+
'\\__tildewider__' : ('cmex10',0x66),
103+
'\\__tildewidest__' : ('cmex10',0x67),
104+
36105
',' : ('cmmi10',0x3b),
37106
'.' : ('cmmi10',0x3a),
38107
'/' : ('cmmi10',0x3d),
@@ -1109,6 +1178,8 @@
11091178
'|' :0x2016,
11101179
'}' :0x7d,
11111180
}
1181+
tex2uni['__angbracketleft__']=tex2uni['langle']
1182+
tex2uni['__angbracketright__']=tex2uni['rangle']
11121183

11131184
# Each element is a 4-tuple of the form:
11141185
# src_start, src_end, dst_font, dst_start
Binary file not shown.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp