@@ -192,6 +192,22 @@ def get_custom_preamble(self):
192
192
"""Return a string containing user additions to the tex preamble."""
193
193
return rcParams ['text.latex.preamble' ]
194
194
195
+ def _get_preamble (self ):
196
+ unicode_preamble = "\n " .join ([
197
+ r"\usepackage[utf8]{inputenc}" ,
198
+ r"\DeclareUnicodeCharacter{2212}{\ensuremath{-}}" ,
199
+ ]) if rcParams ["text.latex.unicode" ] else ""
200
+ return "\n " .join ([
201
+ r"\documentclass{article}" ,
202
+ # Pass-through \mathdefault, which is used in non-usetex mode to
203
+ # use the default text font but was historically suppressed in
204
+ # usetex mode.
205
+ r"\newcommand{\mathdefault}[1]{#1}" ,
206
+ self ._font_preamble ,
207
+ unicode_preamble ,
208
+ self .get_custom_preamble (),
209
+ ])
210
+
195
211
def make_tex (self , tex , fontsize ):
196
212
"""
197
213
Generate a tex file to render the tex string at a specific font size.
@@ -200,30 +216,19 @@ def make_tex(self, tex, fontsize):
200
216
"""
201
217
basefile = self .get_basefile (tex , fontsize )
202
218
texfile = '%s.tex' % basefile
203
- custom_preamble = self .get_custom_preamble ()
204
219
fontcmd = {'sans-serif' : r'{\sffamily %s}' ,
205
220
'monospace' : r'{\ttfamily %s}' }.get (self .font_family ,
206
221
r'{\rmfamily %s}' )
207
222
tex = fontcmd % tex
208
223
209
- unicode_preamble = "\n " .join ([
210
- r"\usepackage[utf8]{inputenc}" ,
211
- r"\DeclareUnicodeCharacter{2212}{\ensuremath{-}}" ,
212
- ]) if rcParams ["text.latex.unicode" ] else ""
213
-
214
224
s = r"""
215
- \documentclass{article}
216
- \newcommand{\mathdefault}[1]{#1}
217
- %s
218
- %s
219
225
%s
220
226
\usepackage[papersize={72in,72in},body={70in,70in},margin={1in,1in}]{geometry}
221
227
\pagestyle{empty}
222
228
\begin{document}
223
229
\fontsize{%f}{%f}%s
224
230
\end{document}
225
- """ % (self ._font_preamble , unicode_preamble , custom_preamble ,
226
- fontsize , fontsize * 1.25 , tex )
231
+ """ % (self ._get_preamble (), fontsize , fontsize * 1.25 , tex )
227
232
with open (texfile , 'wb' ) as fh :
228
233
if rcParams ['text.latex.unicode' ]:
229
234
fh .write (s .encode ('utf8' ))
@@ -251,25 +256,15 @@ def make_tex_preview(self, tex, fontsize):
251
256
"""
252
257
basefile = self .get_basefile (tex , fontsize )
253
258
texfile = '%s.tex' % basefile
254
- custom_preamble = self .get_custom_preamble ()
255
259
fontcmd = {'sans-serif' : r'{\sffamily %s}' ,
256
260
'monospace' : r'{\ttfamily %s}' }.get (self .font_family ,
257
261
r'{\rmfamily %s}' )
258
262
tex = fontcmd % tex
259
263
260
- unicode_preamble = "\n " .join ([
261
- r"\usepackage[utf8]{inputenc}" ,
262
- r"\DeclareUnicodeCharacter{2212}{\ensuremath{-}}" ,
263
- ]) if rcParams ["text.latex.unicode" ] else ""
264
-
265
264
# newbox, setbox, immediate, etc. are used to find the box
266
265
# extent of the rendered text.
267
266
268
267
s = r"""
269
- \documentclass{article}
270
- \newcommand{\mathdefault}[1]{#1}
271
- %s
272
- %s
273
268
%s
274
269
\usepackage[active,showbox,tightpage]{preview}
275
270
\usepackage[papersize={72in,72in},body={70in,70in},margin={1in,1in}]{geometry}
@@ -284,8 +279,7 @@ def make_tex_preview(self, tex, fontsize):
284
279
{\fontsize{%f}{%f}%s}
285
280
\end{preview}
286
281
\end{document}
287
- """ % (self ._font_preamble , unicode_preamble , custom_preamble ,
288
- fontsize , fontsize * 1.25 , tex )
282
+ """ % (self ._get_preamble (), fontsize , fontsize * 1.25 , tex )
289
283
with open (texfile , 'wb' ) as fh :
290
284
if rcParams ['text.latex.unicode' ]:
291
285
fh .write (s .encode ('utf8' ))
0 commit comments