@@ -855,38 +855,35 @@ def print_pgf(self, fname_or_fh, **kwargs):
855
855
856
856
def print_pdf (self , fname_or_fh , * , metadata = None , ** kwargs ):
857
857
"""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 ()
859
859
860
860
info_dict = _create_pdf_info_dict ('pgf' , metadata or {})
861
- hyperref_options = ',' .join (
861
+ pdfinfo = ',' .join (
862
862
_metadata_to_str (k , v ) for k , v in info_dict .items ())
863
863
864
+ # print figure to pgf and compile it with latex
864
865
with TemporaryDirectory () as tmpdir :
865
866
tmppath = pathlib .Path (tmpdir )
866
-
867
- # print figure to pgf and compile it with latex
868
867
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" )
885
883
texcommand = mpl .rcParams ["pgf.texsystem" ]
886
884
cbook ._check_and_log_subprocess (
887
885
[texcommand , "-interaction=nonstopmode" , "-halt-on-error" ,
888
886
"figure.tex" ], _log , cwd = tmpdir )
889
-
890
887
with (tmppath / "figure.pdf" ).open ("rb" ) as orig , \
891
888
cbook .open_file_cm (fname_or_fh , "wb" ) as dest :
892
889
shutil .copyfileobj (orig , dest ) # copy file contents to target
@@ -990,36 +987,20 @@ def __init__(self, filename, *, keep_empty=True, metadata=None):
990
987
self ._file = BytesIO ()
991
988
992
989
def _write_header (self , width_inches , height_inches ):
993
- hyperref_options = ',' .join (
990
+ pdfinfo = ',' .join (
994
991
_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
+ ])
1023
1004
self ._file .write (latex_header .encode ('utf-8' ))
1024
1005
1025
1006
def __enter__ (self ):
0 commit comments