@@ -868,9 +868,13 @@ def print_pgf(self, fname_or_fh, *args, **kwargs):
868
868
file = codecs .getwriter ("utf-8" )(file )
869
869
self ._print_pgf_to_fh (file , * args , ** kwargs )
870
870
871
- def _print_pdf_to_fh (self , fh , * args , ** kwargs ):
871
+ def _print_pdf_to_fh (self , fh , * args , metadata = None , ** kwargs ):
872
872
w , h = self .figure .get_figwidth (), self .figure .get_figheight ()
873
873
874
+ info_dict = _create_pdf_info_dict ('pgf' , metadata or {})
875
+ hyperref_options = ',' .join (
876
+ f'{ k } ={{{ v } }}' for k , v in info_dict .items ())
877
+
874
878
try :
875
879
# create temporary directory for compiling the figure
876
880
tmpdir = tempfile .mkdtemp (prefix = "mpl_pgf_" )
@@ -884,6 +888,8 @@ def _print_pdf_to_fh(self, fh, *args, **kwargs):
884
888
latex_preamble = get_preamble ()
885
889
latex_fontspec = get_fontspec ()
886
890
latexcode = """
891
+ \\ PassOptionsToPackage{pdfinfo={%s}}{hyperref}
892
+ \\ RequirePackage{hyperref}
887
893
\\ documentclass[12pt]{minimal}
888
894
\\ usepackage[paperwidth=%fin, paperheight=%fin, margin=0in]{geometry}
889
895
%s
@@ -893,7 +899,7 @@ def _print_pdf_to_fh(self, fh, *args, **kwargs):
893
899
\\ begin{document}
894
900
\\ centering
895
901
\\ input{figure.pgf}
896
- \\ end{document}""" % (w , h , latex_preamble , latex_fontspec )
902
+ \\ end{document}""" % (hyperref_options , w , h , latex_preamble , latex_fontspec )
897
903
pathlib .Path (fname_tex ).write_text (latexcode , encoding = "utf-8" )
898
904
899
905
texcommand = mpl .rcParams ["pgf.texsystem" ]
0 commit comments