@@ -855,38 +855,35 @@ def print_pgf(self, fname_or_fh, **kwargs):
855855
856856 def print_pdf (self , fname_or_fh , * , metadata = None , ** kwargs ):
857857 """Use LaTeX to compile a pgf generated figure to pdf."""
858- w , h = self .figure .get_figwidth (), self . figure . get_figheight ()
858+ w , h = self .figure .get_size_inches ()
859859
860860 info_dict = _create_pdf_info_dict ('pgf' , metadata or {})
861- hyperref_options = ',' .join (
861+ pdfinfo = ',' .join (
862862 _metadata_to_str (k , v ) for k , v in info_dict .items ())
863863
864+ # print figure to pgf and compile it with latex
864865 with TemporaryDirectory () as tmpdir :
865866 tmppath = pathlib .Path (tmpdir )
866-
867- # print figure to pgf and compile it with latex
868867 self .print_pgf (tmppath / "figure.pgf" , ** kwargs )
869-
870- latexcode = """
871- \\ PassOptionsToPackage{pdfinfo={%s}}{hyperref}
872- \\ RequirePackage{hyperref}
873- \\ documentclass[12pt]{minimal}
874- \\ usepackage[paperwidth=%fin, paperheight=%fin, margin=0in]{geometry}
875- %s
876- %s
877- \\ usepackage{pgf}
878-
879- \\ begin{document}
880- \\ centering
881- \\ input{figure.pgf}
882- \\ end{document}""" % (hyperref_options , w , h , get_preamble (), get_fontspec ())
883- (tmppath / "figure.tex" ).write_text (latexcode , encoding = "utf-8" )
884-
868+ (tmppath / "figure.tex" ).write_text (
869+ "\n " .join ([
870+ r"\PassOptionsToPackage{pdfinfo={%s}}{hyperref}" % pdfinfo ,
871+ r"\RequirePackage{hyperref}" ,
872+ r"\documentclass[12pt]{minimal}" ,
873+ r"\usepackage[papersize={%fin,%fin}, margin=0in]{geometry}"
874+ % (w , h ),
875+ get_preamble (),
876+ get_fontspec (),
877+ r"\usepackage{pgf}" ,
878+ r"\begin{document}" ,
879+ r"\centering" ,
880+ r"\input{figure.pgf}" ,
881+ r"\end{document}" ,
882+ ]), encoding = "utf-8" )
885883 texcommand = mpl .rcParams ["pgf.texsystem" ]
886884 cbook ._check_and_log_subprocess (
887885 [texcommand , "-interaction=nonstopmode" , "-halt-on-error" ,
888886 "figure.tex" ], _log , cwd = tmpdir )
889-
890887 with (tmppath / "figure.pdf" ).open ("rb" ) as orig , \
891888 cbook .open_file_cm (fname_or_fh , "wb" ) as dest :
892889 shutil .copyfileobj (orig , dest ) # copy file contents to target
@@ -990,36 +987,20 @@ def __init__(self, filename, *, keep_empty=True, metadata=None):
990987 self ._file = BytesIO ()
991988
992989 def _write_header (self , width_inches , height_inches ):
993- hyperref_options = ',' .join (
990+ pdfinfo = ',' .join (
994991 _metadata_to_str (k , v ) for k , v in self ._info_dict .items ())
995-
996- latex_preamble = get_preamble ()
997- latex_fontspec = get_fontspec ()
998- latex_header = r"""\PassOptionsToPackage{{
999- pdfinfo={{
1000- {metadata}
1001- }}
1002- }}{{hyperref}}
1003- \RequirePackage{{hyperref}}
1004- \documentclass[12pt]{{minimal}}
1005- \usepackage[
1006- paperwidth={width}in,
1007- paperheight={height}in,
1008- margin=0in
1009- ]{{geometry}}
1010- {preamble}
1011- {fontspec}
1012- \usepackage{{pgf}}
1013- \setlength{{\parindent}}{{0pt}}
1014-
1015- \begin{{document}}%%
1016- """ .format (
1017- width = width_inches ,
1018- height = height_inches ,
1019- preamble = latex_preamble ,
1020- fontspec = latex_fontspec ,
1021- metadata = hyperref_options ,
1022- )
992+ latex_header = "\n " .join ([
993+ r"\PassOptionsToPackage{pdfinfo={%s}}{hyperref}" % pdfinfo ,
994+ r"\RequirePackage{hyperref}" ,
995+ r"\documentclass[12pt]{minimal}" ,
996+ r"\usepackage[papersize={%fin,%fin}, margin=0in]{geometry}"
997+ % (width_inches , height_inches ),
998+ get_preamble (),
999+ get_fontspec (),
1000+ r"\usepackage{pgf}" ,
1001+ r"\setlength{\parindent}{0pt}" ,
1002+ r"\begin{document}%" ,
1003+ ])
10231004 self ._file .write (latex_header .encode ('utf-8' ))
10241005
10251006 def __enter__ (self ):
0 commit comments