From b7c9d8527cfe15b36da8ec498f9ea41d2a2c432b Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Sun, 5 Apr 2020 22:07:19 +0200 Subject: [PATCH 1/3] Disable use of FreeType in dvipng for test reproducibility. Unfortunately at least some dvipngs appear to be statically linked to FreeType so we can't play tricks with LD_PRELOAD/LD_LIBRARY_PATH. --- lib/matplotlib/texmanager.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/matplotlib/texmanager.py b/lib/matplotlib/texmanager.py index f954254adc9e..c4bde166bf55 100644 --- a/lib/matplotlib/texmanager.py +++ b/lib/matplotlib/texmanager.py @@ -350,9 +350,16 @@ def make_png(self, tex, fontsize, dpi): # see get_rgba for a discussion of the background if not os.path.exists(pngfile): dvifile = self.make_dvi(tex, fontsize) - self._run_checked_subprocess( - ["dvipng", "-bg", "Transparent", "-D", str(dpi), - "-T", "tight", "-o", pngfile, dvifile], tex) + cmd = ["dvipng", "-bg", "Transparent", "-D", str(dpi), + "-T", "tight", "-o", pngfile, dvifile] + # When testing, disable FreeType rendering for reproducibility; but + # dvipng 1.16 has a bug (fixed in f3ff241) that breaks --freetype0 + # mode, so for it we keep FreeType enabled; the image will be + # slightly off. + if (getattr(mpl, "_called_from_pytest", False) + and mpl._get_executable_info("dvipng").version != "1.16"): + cmd.insert(1, "--freetype0") + self._run_checked_subprocess(cmd, tex) return pngfile def get_grey(self, tex, fontsize=None, dpi=None): From 0651abb3b6b1228ce082a5055a3bee302a31a5e7 Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Wed, 5 Feb 2020 01:05:04 +0100 Subject: [PATCH 2/3] Fix support for empty usetex strings. Currently, `figtext(.5, .5, "%foo", usetex=True)` results in an obscure exception (`FileNotFoundError: No such file or directory: blah.dvi`). Fix that by forcing tex to always generate a page, by inserting at least an empty \hbox{}. --- lib/matplotlib/dviread.py | 3 +++ lib/matplotlib/tests/test_usetex.py | 6 ++++++ lib/matplotlib/texmanager.py | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/dviread.py b/lib/matplotlib/dviread.py index d96dfb8a7f21..4e005ed71f4b 100644 --- a/lib/matplotlib/dviread.py +++ b/lib/matplotlib/dviread.py @@ -275,6 +275,9 @@ def _output(self): maxy = max(maxy, y + e) maxy_pure = max(maxy_pure, y) + if not self.text and not self.boxes: # Avoid infs/nans from inf+/-inf. + return Page(text=[], boxes=[], width=0, height=0, descent=0) + if self.dpi is None: # special case for ease of debugging: output raw dvi coordinates return Page(text=self.text, boxes=self.boxes, diff --git a/lib/matplotlib/tests/test_usetex.py b/lib/matplotlib/tests/test_usetex.py index d13ff30060f5..4a3d71606228 100644 --- a/lib/matplotlib/tests/test_usetex.py +++ b/lib/matplotlib/tests/test_usetex.py @@ -32,6 +32,12 @@ def test_usetex(): ax.set_yticks([]) +@check_figures_equal() +def test_empty(fig_test, fig_ref): + mpl.rcParams['text.usetex'] = True + fig_test.text(.5, .5, "% a comment") + + @check_figures_equal() def test_unicode_minus(fig_test, fig_ref): mpl.rcParams['text.usetex'] = True diff --git a/lib/matplotlib/texmanager.py b/lib/matplotlib/texmanager.py index c4bde166bf55..10722baec573 100644 --- a/lib/matplotlib/texmanager.py +++ b/lib/matplotlib/texmanager.py @@ -207,7 +207,8 @@ def make_tex(self, tex, fontsize): \usepackage[papersize={72in,72in},body={70in,70in},margin={1in,1in}]{geometry} \pagestyle{empty} \begin{document} -\fontsize{%f}{%f}%s +%% The empty hbox ensures that a page is printed even for empty inputs. +\fontsize{%f}{%f}\hbox{}%s \end{document} """ % (self._get_preamble(), fontsize, fontsize * 1.25, fontcmd % tex), encoding='utf-8') From 8472fbbd16e292d50cdc05caa320854b2388a842 Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Tue, 10 Mar 2020 10:05:30 +0100 Subject: [PATCH 3/3] Fix baseline alignment when using usetex. Previously we inferred the baseline of usetex strings with the baseline of the character with the lowest baseline, which is wrong in the presence of indices (see usetex_baseline_test.py). There was an option to use the "preview" latex package to fix that, but that was never made the default and likely cannot as the package is GPL. Instead I can infer the baseline position by "reverse-engineering" the starting instructions of the dvi stream (this was done without consulting the approach in "preview"). The results can be checked using usetex_baseline_test.py (preview=False now looks the same as preview=True; likewise, the output of test_usetex was changed. The text.latex.preview rc can now be deprecated (in a future PR). The test was also updated to include the strings of the usetex_baseline_test example (which may go away once text.latex.preview is removed). --- lib/matplotlib/backends/backend_ps.py | 3 +- lib/matplotlib/dviread.py | 18 +++++++++++ .../test_usetex/test_usetex.pdf | Bin 174976 -> 125933 bytes .../test_usetex/test_usetex.png | Bin 9329 -> 13512 bytes lib/matplotlib/tests/test_usetex.py | 28 +++++++++++------- lib/matplotlib/texmanager.py | 2 +- 6 files changed, 37 insertions(+), 14 deletions(-) diff --git a/lib/matplotlib/backends/backend_ps.py b/lib/matplotlib/backends/backend_ps.py index d95d6ea60f2b..d0102dd45238 100644 --- a/lib/matplotlib/backends/backend_ps.py +++ b/lib/matplotlib/backends/backend_ps.py @@ -484,8 +484,7 @@ def draw_tex(self, gc, x, y, s, prop, angle, ismath='TeX!', mtext=None): r'\psfrag{%s}[Bl][Bl][1][%f]{\fontsize{%f}{%f}%s}' % ( thetext, angle, fontsize, fontsize*1.25, tex)) else: - # Stick to the bottom alignment, but this may give incorrect - # baseline some times. + # Stick to the bottom alignment. pos = _nums_to_str(x-corr, y-bl) self.psfrag.append( r'\psfrag{%s}[bl][bl][1][%f]{\fontsize{%f}{%f}%s}' % ( diff --git a/lib/matplotlib/dviread.py b/lib/matplotlib/dviread.py index 4e005ed71f4b..dcaba415a7b2 100644 --- a/lib/matplotlib/dviread.py +++ b/lib/matplotlib/dviread.py @@ -274,6 +274,9 @@ def _output(self): maxx = max(maxx, x + w) maxy = max(maxy, y + e) maxy_pure = max(maxy_pure, y) + if self._baseline_v is not None: + maxy_pure = self._baseline_v # This should normally be the case. + self._baseline_v = None if not self.text and not self.boxes: # Avoid infs/nans from inf+/-inf. return Page(text=[], boxes=[], width=0, height=0, descent=0) @@ -304,9 +307,24 @@ def _read(self): Read one page from the file. Return True if successful, False if there were no more pages. """ + # Pages appear to start with the sequence + # bop (begin of page) + # xxx comment + # down + # push + # down, down + # push + # down (possibly multiple) + # push <= here, v is the baseline position. + # etc. + # (dviasm is useful to explore this structure.) + self._baseline_v = None while True: byte = self.file.read(1)[0] self._dtable[byte](self, byte) + if (self._baseline_v is None + and len(getattr(self, "stack", [])) == 3): + self._baseline_v = self.v if byte == 140: # end of page return True if self.state is _dvistate.post_post: # end of file diff --git a/lib/matplotlib/tests/baseline_images/test_usetex/test_usetex.pdf b/lib/matplotlib/tests/baseline_images/test_usetex/test_usetex.pdf index 8041641f98275a7c0e70f0bf3ecb28097b03651e..4ef375771d3891adb872e380e046e0153440d3ab 100644 GIT binary patch delta 3347 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 diff --git a/lib/matplotlib/tests/baseline_images/test_usetex/test_usetex.png b/lib/matplotlib/tests/baseline_images/test_usetex/test_usetex.png index 9a92f45e1e182dc670261f78445f7ea620d2362b..e4a9183612f5255bb048c6ffa1667584b6977405 100644 GIT binary patch literal 13512 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 literal 9329 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 diff --git a/lib/matplotlib/tests/test_usetex.py b/lib/matplotlib/tests/test_usetex.py index 4a3d71606228..8fccfe4a18b9 100644 --- a/lib/matplotlib/tests/test_usetex.py +++ b/lib/matplotlib/tests/test_usetex.py @@ -1,5 +1,3 @@ -import platform - import numpy as np import pytest @@ -12,24 +10,32 @@ pytestmark = pytest.mark.skip('Missing TeX of Ghostscript or dvipng') -@image_comparison(baseline_images=['test_usetex'], - extensions=['pdf', 'png'], - tol={'aarch64': 2.868, 'x86_64': 2.868}.get( - platform.machine(), 0.3 - )) +@image_comparison( + baseline_images=['test_usetex'], + extensions=['pdf', 'png'], + style="mpl20") def test_usetex(): mpl.rcParams['text.usetex'] = True fig = plt.figure() ax = fig.add_subplot(111) - ax.text(0.1, 0.2, + kwargs = {"verticalalignment": "baseline", "size": 24, + "bbox": dict(pad=0, edgecolor="k", facecolor="none")} + ax.text(0.2, 0.7, # the \LaTeX macro exercises character sizing and placement, # \left[ ... \right\} draw some variable-height characters, # \sqrt and \frac draw horizontal rules, \mathrm changes the font r'\LaTeX\ $\left[\int\limits_e^{2e}' r'\sqrt\frac{\log^3 x}{x}\,\mathrm{d}x \right\}$', - fontsize=24) - ax.set_xticks([]) - ax.set_yticks([]) + **kwargs) + ax.text(0.2, 0.3, "lg", **kwargs) + ax.text(0.4, 0.3, r"$\frac{1}{2}\pi$", **kwargs) + ax.text(0.6, 0.3, "$p^{3^A}$", **kwargs) + ax.text(0.8, 0.3, "$p_{3_2}$", **kwargs) + for x in {t.get_position()[0] for t in ax.texts}: + ax.axvline(x) + for y in {t.get_position()[1] for t in ax.texts}: + ax.axhline(y) + ax.set_axis_off() @check_figures_equal() diff --git a/lib/matplotlib/texmanager.py b/lib/matplotlib/texmanager.py index 10722baec573..1685b955352a 100644 --- a/lib/matplotlib/texmanager.py +++ b/lib/matplotlib/texmanager.py @@ -411,7 +411,7 @@ def get_text_width_height_descent(self, tex, fontsize, renderer=None): return width, height + depth, depth else: - # use dviread. It sometimes returns a wrong descent. + # use dviread. dvifile = self.make_dvi(tex, fontsize) with dviread.Dvi(dvifile, 72 * dpi_fraction) as dvi: page, = dvi