@@ -87,9 +87,9 @@ class TexManager:
8787 'computer modern typewriter' : ('cmtt' , r'\usepackage{type1ec}' )}
8888
8989 _rc_cache = None
90- _rc_cache_keys = (
91- ( 'text.latex.preamble' , 'text.latex.unicode ' , 'text.latex.preview ' ,
92- 'font.family' ) + tuple ( 'font.' + n for n in font_families ))
90+ _rc_cache_keys = [
91+ 'text.latex.preamble' , 'text.latex.preview ' , 'font.family ' ,
92+ * [ 'font.' + n for n in font_families ]]
9393
9494 @cbook .deprecated ("3.3" , alternative = "matplotlib.get_cachedir()" )
9595 @property
@@ -184,18 +184,15 @@ def get_custom_preamble(self):
184184 return rcParams ['text.latex.preamble' ]
185185
186186 def _get_preamble (self ):
187- unicode_preamble = "\n " .join ([
188- r"\usepackage[utf8]{inputenc}" ,
189- r"\DeclareUnicodeCharacter{2212}{\ensuremath{-}}" ,
190- ]) if rcParams ["text.latex.unicode" ] else ""
191187 return "\n " .join ([
192188 r"\documentclass{article}" ,
193189 # Pass-through \mathdefault, which is used in non-usetex mode to
194190 # use the default text font but was historically suppressed in
195191 # usetex mode.
196192 r"\newcommand{\mathdefault}[1]{#1}" ,
197193 self ._font_preamble ,
198- unicode_preamble ,
194+ r"\usepackage[utf8]{inputenc}" ,
195+ r"\DeclareUnicodeCharacter{2212}{\ensuremath{-}}" ,
199196 self .get_custom_preamble (),
200197 ])
201198
@@ -210,26 +207,17 @@ def make_tex(self, tex, fontsize):
210207 fontcmd = {'sans-serif' : r'{\sffamily %s}' ,
211208 'monospace' : r'{\ttfamily %s}' }.get (self .font_family ,
212209 r'{\rmfamily %s}' )
213- tex = fontcmd % tex
214210
215- s = r"""
211+ Path (texfile ).write_text (
212+ r"""
216213%s
217214\usepackage[papersize={72in,72in},body={70in,70in},margin={1in,1in}]{geometry}
218215\pagestyle{empty}
219216\begin{document}
220217\fontsize{%f}{%f}%s
221218\end{document}
222- """ % (self ._get_preamble (), fontsize , fontsize * 1.25 , tex )
223- with open (texfile , 'wb' ) as fh :
224- if rcParams ['text.latex.unicode' ]:
225- fh .write (s .encode ('utf8' ))
226- else :
227- try :
228- fh .write (s .encode ('ascii' ))
229- except UnicodeEncodeError :
230- _log .info ("You are using unicode and latex, but have not "
231- "enabled the 'text.latex.unicode' rcParam." )
232- raise
219+ """ % (self ._get_preamble (), fontsize , fontsize * 1.25 , fontcmd % tex ),
220+ encoding = 'utf-8' )
233221
234222 return texfile
235223
@@ -250,12 +238,12 @@ def make_tex_preview(self, tex, fontsize):
250238 fontcmd = {'sans-serif' : r'{\sffamily %s}' ,
251239 'monospace' : r'{\ttfamily %s}' }.get (self .font_family ,
252240 r'{\rmfamily %s}' )
253- tex = fontcmd % tex
254241
255242 # newbox, setbox, immediate, etc. are used to find the box
256243 # extent of the rendered text.
257244
258- s = r"""
245+ Path (texfile ).write_text (
246+ r"""
259247%s
260248\usepackage[active,showbox,tightpage]{preview}
261249\usepackage[papersize={72in,72in},body={70in,70in},margin={1in,1in}]{geometry}
@@ -270,17 +258,8 @@ def make_tex_preview(self, tex, fontsize):
270258{\fontsize{%f}{%f}%s}
271259\end{preview}
272260\end{document}
273- """ % (self ._get_preamble (), fontsize , fontsize * 1.25 , tex )
274- with open (texfile , 'wb' ) as fh :
275- if rcParams ['text.latex.unicode' ]:
276- fh .write (s .encode ('utf8' ))
277- else :
278- try :
279- fh .write (s .encode ('ascii' ))
280- except UnicodeEncodeError :
281- _log .info ("You are using unicode and latex, but have not "
282- "enabled the 'text.latex.unicode' rcParam." )
283- raise
261+ """ % (self ._get_preamble (), fontsize , fontsize * 1.25 , fontcmd % tex ),
262+ encoding = 'utf-8' )
284263
285264 return texfile
286265
0 commit comments