

.. _sphx_glr_gallery_text_labels_and_annotations_usetex_baseline_test.py:


====================
Usetex Baseline Test
====================





.. image:: /gallery/text_labels_and_annotations/images/sphx_glr_usetex_baseline_test_001.png
    :align: center





.. code-block:: python


    import matplotlib
    import matplotlib.pyplot as plt
    import matplotlib.axes as maxes

    from matplotlib import rcParams
    rcParams['text.usetex'] = True
    rcParams['text.latex.unicode'] = True


    class Axes(maxes.Axes):
        """
        A hackish way to simultaneously draw texts w/ usetex=True and
        usetex=False in the same figure. It does not work in the ps backend.
        """

        def __init__(self, *kl, **kw):
            self.usetex = kw.pop("usetex", "False")
            self.preview = kw.pop("preview", "False")

            maxes.Axes.__init__(self, *kl, **kw)

        def draw(self, renderer):
            usetex = plt.rcParams["text.usetex"]
            preview = plt.rcParams["text.latex.preview"]
            plt.rcParams["text.usetex"] = self.usetex
            plt.rcParams["text.latex.preview"] = self.preview

            maxes.Axes.draw(self, renderer)

            plt.rcParams["text.usetex"] = usetex
            plt.rcParams["text.latex.preview"] = preview


    subplot = maxes.subplot_class_factory(Axes)


    def test_window_extent(ax, usetex, preview):

        va = "baseline"
        ax.xaxis.set_visible(False)
        ax.yaxis.set_visible(False)

        text_kw = dict(va=va,
                       size=50,
                       bbox=dict(pad=0., ec="k", fc="none"))

        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, **text_kw)

        ax.set_xlim(-0.1, 1.1)
        ax.set_ylim(-.8, 3.9)

        ax.set_title("usetex=%s\npreview=%s" % (str(usetex), str(preview)))


    fig = plt.figure(figsize=(2 * 3, 6.5))

    for i, usetex, preview in [[0, False, False],
                               [1, True, False],
                               [2, True, True]]:
        ax = subplot(fig, 1, 3, i + 1, usetex=usetex, preview=preview)
        fig.add_subplot(ax)
        fig.subplots_adjust(top=0.85)

        test_window_extent(ax, usetex=usetex, preview=preview)


    plt.draw()
    plt.show()

**Total running time of the script:** ( 0 minutes  2.233 seconds)



.. only :: html

 .. container:: sphx-glr-footer


  .. container:: sphx-glr-download

     :download:`Download Python source code: usetex_baseline_test.py <usetex_baseline_test.py>`



  .. container:: sphx-glr-download

     :download:`Download Jupyter notebook: usetex_baseline_test.ipynb <usetex_baseline_test.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.readthedocs.io>`_
