@@ -2263,7 +2263,11 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None):
2263
2263
return self .draw_mathtext (gc , x , y , s , prop , angle )
2264
2264
2265
2265
fontsize = prop .get_size_in_points ()
2266
- language = mtext .get_language () if mtext is not None else None
2266
+ if mtext is not None :
2267
+ features = mtext .get_fontfeatures ()
2268
+ language = mtext .get_language ()
2269
+ else :
2270
+ features = language = None
2267
2271
2268
2272
if mpl .rcParams ['pdf.use14corefonts' ]:
2269
2273
font = self ._get_font_afm (prop )
@@ -2273,7 +2277,7 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None):
2273
2277
fonttype = mpl .rcParams ['pdf.fonttype' ]
2274
2278
2275
2279
if gc .get_url () is not None :
2276
- font .set_text (s , language = language )
2280
+ font .set_text (s , features = features , language = language )
2277
2281
width , height = font .get_width_height ()
2278
2282
self .file ._annotations [- 1 ][1 ].append (_get_link_annotation (
2279
2283
gc , x , y , width / 64 , height / 64 , angle ))
@@ -2321,7 +2325,8 @@ def output_singlebyte_chunk(kerns_or_chars):
2321
2325
prev_start_x = 0
2322
2326
# Emit all the characters in a BT/ET group.
2323
2327
self .file .output (Op .begin_text )
2324
- for item in _text_helpers .layout (s , font , kern_mode = Kerning .UNFITTED ,
2328
+ for item in _text_helpers .layout (s , font , features = features ,
2329
+ kern_mode = Kerning .UNFITTED ,
2325
2330
language = language ):
2326
2331
subset , charcode = self .file ._character_tracker .track_glyph (
2327
2332
item .ft_object , item .char , item .glyph_index )
0 commit comments