@@ -43,8 +43,10 @@ def _get_documentclass():
43
43
return _DOCUMENTCLASS
44
44
45
45
46
- def _get_preamble ():
46
+ def _get_preamble (commands = None ):
47
47
"""Prepare a LaTeX preamble based on the rcParams configuration."""
48
+ if commands is None :
49
+ commands = []
48
50
font_size_pt = FontProperties (
49
51
size = mpl .rcParams ["font.size" ]
50
52
).get_size_in_points ()
@@ -69,6 +71,7 @@ def _get_preamble():
69
71
for family in ["serif" , "sans\\ -serif" , "monospace" ]]
70
72
)
71
73
] + [r"\fi" ] if mpl .rcParams ["pgf.rcfonts" ] else []),
74
+ * commands ,
72
75
# Documented as "must come last".
73
76
mpl .texmanager ._usepackage_if_not_loaded ("underscore" , option = "strings" ),
74
77
])
@@ -202,12 +205,13 @@ class LatexManager:
202
205
@staticmethod
203
206
def _build_latex_header ():
204
207
latex_header = [
205
- _get_preamble (),
206
- # Include TeX program name as a comment for cache invalidation.
207
- # TeX does not allow this to be the first line.
208
- rf"% !TeX program = { mpl .rcParams ['pgf.texsystem' ]} " ,
209
- # Test whether \includegraphics supports interpolate option.
210
- r"\usepackage{graphicx}" ,
208
+ _get_preamble (commands = [
209
+ # Include TeX program name as a comment for cache invalidation.
210
+ # TeX does not allow this to be the first line.
211
+ rf"% !TeX program = { mpl .rcParams ['pgf.texsystem' ]} " ,
212
+ # Test whether \includegraphics supports interpolate option.
213
+ r"\usepackage{graphicx}" ,
214
+ ]),
211
215
r"\begin{document}" ,
212
216
r"\typeout{pgf_backend_query_start}" ,
213
217
]
@@ -833,11 +837,12 @@ def print_pdf(self, fname_or_fh, *, metadata=None, **kwargs):
833
837
"\n " .join ([
834
838
r"\PassOptionsToPackage{pdfinfo={%s}}{hyperref}" % pdfinfo ,
835
839
r"\PassOptionsToPackage{%s}{geometry}" % geometry_options ,
836
- _get_preamble (),
837
- r"\usepackage{hyperref}" ,
838
- r"\usepackage{geometry}" ,
839
- r"\geometry{reset, %s}" % geometry_options ,
840
- r"\usepackage{pgf}" ,
840
+ _get_preamble (commands = [
841
+ r"\usepackage{hyperref}" ,
842
+ r"\usepackage{geometry}" ,
843
+ r"\geometry{reset, %s}" % geometry_options ,
844
+ r"\usepackage{pgf}" ,
845
+ ]),
841
846
r"\begin{document}" ,
842
847
r"\centering" ,
843
848
r"\input{figure.pgf}" ,
@@ -946,11 +951,12 @@ def _write_header(self, width_inches, height_inches):
946
951
latex_header = "\n " .join ([
947
952
r"\PassOptionsToPackage{pdfinfo={%s}}{hyperref}" % pdfinfo ,
948
953
r"\PassOptionsToPackage{%s}{geometry}" % geometry_options ,
949
- _get_preamble (),
950
- r"\usepackage{hyperref}" ,
951
- r"\usepackage{geometry}" ,
952
- r"\geometry{reset, %s}" % geometry_options ,
953
- r"\usepackage{pgf}" ,
954
+ _get_preamble (commands = [
955
+ r"\usepackage{hyperref}" ,
956
+ r"\usepackage{geometry}" ,
957
+ r"\geometry{reset, %s}" % geometry_options ,
958
+ r"\usepackage{pgf}" ,
959
+ ]),
954
960
r"\setlength{\parindent}{0pt}" ,
955
961
r"\begin{document}%" ,
956
962
])
0 commit comments