|
51 | 51 | except: |
52 | 52 | warnings.warn('error getting fonts from fc-list', UserWarning) |
53 | 53 |
|
| 54 | + |
| 55 | +luatex_version_re = re.compile( |
| 56 | + 'This is LuaTeX, Version (?:beta-)?([0-9]+)\.([0-9]+)\.([0-9]+)' |
| 57 | +) |
| 58 | + |
| 59 | + |
54 | 60 | def get_texcommand(): |
55 | 61 | """Get chosen TeX system from rc.""" |
56 | 62 | texsystem_options = ["xelatex", "lualatex", "pdflatex"] |
57 | 63 | texsystem = rcParams["pgf.texsystem"] |
58 | 64 | return texsystem if texsystem in texsystem_options else "xelatex" |
59 | 65 |
|
60 | 66 |
|
| 67 | +def get_lualatex_version(): |
| 68 | + """Get version of luatex""" |
| 69 | + output = check_output(['lualatex', '--version']) |
| 70 | + return parse_lualatex_version(output.decode()) |
| 71 | + |
| 72 | + |
| 73 | +def parse_lualatex_version(output): |
| 74 | + '''parse the lualatex version from the output of `lualatex --version`''' |
| 75 | + match = luatex_version_re.match(output) |
| 76 | + return tuple(map(int, match.groups())) |
| 77 | + |
| 78 | + |
61 | 79 | def get_fontspec(): |
62 | 80 | """Build fontspec preamble from rc.""" |
63 | 81 | latex_fontspec = [] |
@@ -1181,17 +1199,16 @@ def savefig(self, figure=None, **kwargs): |
1181 | 1199 | self._write_header(*figure.get_size_inches()) |
1182 | 1200 | else: |
1183 | 1201 | if get_texcommand() == 'lualatex': |
1184 | | - self._file.write( |
1185 | | - r'\newpage\pagewidth={}in\pageheight={}in%'.format( |
1186 | | - *figure.get_size_inches() |
1187 | | - ).encode('utf-8') + b'\n' |
1188 | | - ) |
| 1202 | + if get_lualatex_version() > (0, 85, 0): |
| 1203 | + np = r'\newpage\pagewidth={}in\pageheight={}in%' |
| 1204 | + else: |
| 1205 | + np = r'\newpage\pdfpagewidth={}in\pdfpageheight={}in%' |
1189 | 1206 | else: |
1190 | | - self._file.write( |
1191 | | - r'\newpage\pdfpagewidth={}in\pdfpageheight={}in%'.format( |
1192 | | - *figure.get_size_inches() |
1193 | | - ).encode('utf-8') + b'\n' |
1194 | | - ) |
| 1207 | + np = r'\newpage\pdfpagewidth={}in\pdfpageheight={}in%' |
| 1208 | + self._file.write(np.format( |
| 1209 | + *figure.get_size_inches() |
| 1210 | + ).encode('utf-8') + b'\n' |
| 1211 | + ) |
1195 | 1212 | figure.savefig(self._file, format="pgf", **kwargs) |
1196 | 1213 | self._n_figures += 1 |
1197 | 1214 | finally: |
|
0 commit comments