.. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_text_labels_and_annotations_usetex_baseline_test.py: ==================== Usetex Baseline Test ==================== A test for :rc:`text.latex.preview`, a deprecated feature which relied on the preview.sty LaTeX package to properly align TeX baselines. This feature has been deprecated as Matplotlib's dvi parser now computes baselines just as well as preview.sty; this example will be removed together with :rc:`text.latex.preview` after the deprecation elapses. .. image:: /gallery/text_labels_and_annotations/images/sphx_glr_usetex_baseline_test_001.png :alt: usetex=False , usetex=True preview=False, usetex=True preview=True :class: sphx-glr-single-img .. code-block:: default import matplotlib.pyplot as plt import matplotlib.axes as maxes plt.rcParams.update({"mathtext.fontset": "cm", "mathtext.rm": "serif"}) @maxes.subplot_class_factory class LatexPreviewSubplot(maxes.Axes): """ A hackish way to simultaneously draw texts with text.latex.preview=True and text.latex.preview=False in the same figure. It does not work with the ps backend. """ def __init__(self, *args, preview=False, **kwargs): self.preview = preview super().__init__(*args, **kwargs) def draw(self, renderer): with plt.rc_context({"text.latex.preview": self.preview}): super().draw(renderer) def test_window_extent(ax, usetex, preview): ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) test_strings = ["lg", r"$\frac{1}{2}\pi$", r"$p^{3^A}$", r"$p_{3_2}$"] ax.axvline(0, color="r") for i, s in enumerate(test_strings): ax.axhline(i, color="r") ax.text(0., 3 - i, s, usetex=usetex, verticalalignment="baseline", size=50, bbox=dict(pad=0, ec="k", fc="none")) ax.set_xlim(-0.1, 1.1) ax.set_ylim(-.8, 3.9) title = f"usetex={usetex}\n" if usetex: title += f"preview={preview}" ax.set_title(title) fig = plt.figure(figsize=(2 * 3, 6.5)) for i, usetex, preview in [[0, False, False], [1, True, False], [2, True, True]]: ax = LatexPreviewSubplot(fig, 1, 3, i + 1, preview=preview) fig.add_subplot(ax) fig.subplots_adjust(top=0.85) test_window_extent(ax, usetex=usetex, preview=preview) plt.show() .. _sphx_glr_download_gallery_text_labels_and_annotations_usetex_baseline_test.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: usetex_baseline_test.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: usetex_baseline_test.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature Keywords: matplotlib code example, codex, python plot, pyplot `Gallery generated by Sphinx-Gallery `_